精华内容
下载资源
问答
  • Sql server 生成随机数

    2020-05-22 10:31:34
    Sql server 生成随机数Funciton 1.创建一个视图 Create View RandView As Select RAND() As rand 2.生成随机数方法 /* select char(65+ceiling(rand()*25)) --随机字母(大写) select char(97+ceiling(rand()*25...

    个人博客开始运营:点击进入我的博客
    欢迎大家访问,以及收藏,内容会及时更新的!

    Sql server 生成随机数Funciton


    1.创建一个视图

    Create View RandView
    As 
    	Select RAND() As rand
    

    2.生成随机数方法

    /*
    select char(65+ceiling(rand()*25))   --随机字母(大写)
    select char(97+ceiling(rand()*25))   --随机字母(小写)
    select cast(ceiling(rand()*9) as varchar(1))   --随机数字 1至9的随机数字(整数)
    */
    CREATE FUNCTION [dbo].[RandomNum]
    (
    	-- Add the parameters for the function here
    	@Count int  ---生成长度
    )
    RETURNS varchar(50)
    AS
    
    BEGIN
    	declare @i int
    	declare	@flag int
    	declare @value varchar(50)
    	declare @randomnum float
    
    	set @i=1
    	set @value=''
    
    	while @i<=@Count
    	begin
    		select @randomnum=rand from RandView
    		set @flag = ceiling(@randomnum*3)
    		if @flag = 1
    			begin
    				select @randomnum=rand from RandView
    				set @value=@value+char(65+ceiling(@randomnum*25))
    			end
    		if @flag = 2
    			begin
    				select @randomnum=rand from RandView
    				set @value=@value+char(97+ceiling(@randomnum*25))
    			end
    		if @flag = 3
    			begin
    				select @randomnum=rand from RandView
    				set @value=@value+cast(ceiling(@randomnum*9) as varchar(1))
    			end
    		set @i = @i + 1
    	end
    	return @value
    END
    

    3.调用方法

    select [dbo].[RandomNum](10)
    

    效果图:
    在这里插入图片描述

    展开全文
  • SQLserver生成随机数.txt

    2021-06-01 15:46:44
    SQLserver生成随机数
  • MSSQL有一个函数CHAR()是将int(0-255) ASCII代码转换为字符。那我们可以使用下面MS SQL语句,可以随机生成小写、大写字母,特殊字符和数字
  • Sqlserver生成随机数的一些应用

    千次阅读 2012-03-06 14:39:34
    Sqlserver虽然有rand()函数可以用,但单纯用rand()来获取随机数有很多限制,因为rand()生成的是类似0.747589267212168的随机小数,灵活处理一下就可以得到整数 1.select cast(ceiling(rand() * N) asint)//生成的数...
     
    

    Sqlserver虽然有rand()函数可以用,但单纯用rand()来获取随机数有很多限制,因为rand()生成的是类似0.747589267212168的随机小数,灵活处理一下就可以得到整数
    1.select cast(ceiling(rand() * N) asint)//生成的数是N以内的正数

    2.select cast(ceiling(rand(checksum(newid()))*N) asint) 这个同上,但在批量操作时往往这个会更有用,如

    update table set field=cast(ceiling(rand() *5 ) asint) 和update table set field=cast(ceiling(rand(checksum(newid()))*N) asint)产生的效果就完全不同,前者虽然也是生成随机数了,但是所有table表里的field字段的数值都是一样的,而后者就各不相同,原理就是1是先生成随机数,然后再更新,2是更新每条记录前生成随机数。

    3.将上面俩条语句中的ceiling换成floor就可以生成包含0的整数随机数。

    4.随机查询得到N条记录用order by newid(),语句是select top N * from table order by newid()

    从A表随机取2条记录,用SELECT TOP 10 * FROM ywle order by newid()
    order by 一般是根据某一字段排序,newid()的返回值 是uniqueidentifier ,order by newid()随机选取记录是如何进行的
    newid()在扫描每条记录的时候都生成一个值, 而生成的值是随机的, 没有大小写顺序. 所以最终结果再按这个排序, 排序的结果当然就是无序的了
    或者
    select top 10 *,newid() as Random from ywle where ywlename='001' ordey by Random
    下者效率要高些
    因为newid()返回的是uniqueidentifier类型的唯一值。newid()每次产生的值都不一样,那么根据这样的值进行排序,每次的结果也是不一样的。

    原理是 把所有的ID出取然后用随机函数取出其中一个,然后用这个随机取到的ID去数据库里再取出记录,所有代价有点大。

    sql server的随机函数newID()和RAND()

    SELECT * FROM Northwind..Orders ORDER BY NEWID()
    --随机排序

    SELECT TOP 10 * FROM Northwind..Orders ORDER BY NEWID()
    --从Orders表中随机取出10条记录

    示例

    A.对变量使用 NEWID 函数
    以下示例使用 NEWID() 对声明为 uniqueidentifier 数据类型的变量赋值。在测试 uniqueidentifier 数据类型变量的值之前,先输出该值。
    -- Creating a local variable with DECLARESET syntax.
    DECLARE @myid uniqueidentifier
    SET @myid = NEWID()
    PRINT 'Value of @myid is '+ CONVERT(varchar(255), @myid)
    下面是结果集:
    Value of @myid is 6F9619FF-8B86-D011-B42D-00C04FC964FF
    注意:
    NEWID 对每台计算机返回的值各不相同。所显示的数字仅起解释说明的作用。

    随机函数:rand()
    在查询分析器中执行:select rand(),可以看到结果会是类似于这样的随机小数:0.36361513486289558,像这样的小数在实际应用中用得不多,一般要取随机数都会取随机整数。那就看下面的两种随机取整数的方法:

    1、
    A:select floor(rand()*N) ---生成的数是这样的:12.0
    B:select cast( floor(rand()*N) as int) ---生成的数是这样的:12

    2、
    A:select ceiling(rand() * N) ---生成的数是这样的:12.0
    B:select cast(ceiling(rand() * N) as int) ---生成的数是这样的:12

    其中里面的N是一个你指定的整数,如100,可以看出,两种方法的A方法是带有.0这个的小数的,而B方法就是真正的整数了。
    大致一看,这两种方法没什么区别,真的没区别?其实是有一点的,那就是他们的生成随机数的范围:
    方法1的数字范围:0至N-1之间,如cast( floor(rand()*100) as int)就会生成0至99之间任一整数
    方法2的数字范围:1至N之间,如cast(ceiling(rand() * 100) as int)就会生成1至100之间任一整数
    对于这个区别,看SQL的联机帮助就知了:
    ------------------------------------------------------------------------------------

    比较 CEILING 和 FLOOR

    CEILING 函数返回大于或等于所给数字表达式的最小整数。FLOOR 函数返回小于或等于所给数字表达式的最大整数。例如,对于数字表达式 12.9273,CEILING 将返回 13,FLOOR 将返回 12。FLOOR 和 CEILING 返回值的数据类型都与输入的数字表达式的数据类型相同。
    ----------------------------------------------------------------------------------
    现在,各位就可以根据自己需要使用这两种方法来取得随机数了^_^

    另外,还要提示一下各位菜鸟,关于随机取得表中任意N条记录的方法,很简单,就用newid():
    select top N * from table_name order by newid() ----N是一个你指定的整数,表是取得记录的条数.

    select * from sys_function
    declare @M int,@N int
    set @N=6
    set @M=13
    update sys_function set strurl = '/dom/0' + cast(ceiling(rand(checksum(newid()))*6) as varchar(50)) + '.html'
    select cast(ceiling(rand(checksum(newid()))*6) as varchar(50))
    展开全文
  • sqlserver产生随机数

    千次阅读 2019-03-01 11:35:14
    方法1的数字范围:0至N-1之间,如cast(floor(rand()*100) as int)就会生成0至99之间任一整数 方法2的数字范围:1至N之间,如cast(ceiling(rand() * 100) as int)就会生成1至100之间任一整数 另外,还要提示一下各位....

    参考:https://blog.csdn.net/slowlifes/article/details/52708700

    方法1的数字范围:0至N-1之间,如cast(floor(rand()*100) as int)就会生成0至99之间任一整数
    方法2的数字范围:1至N之间,如cast(ceiling(rand() * 100) as int)就会生成1至100之间任一整数

    另外,还要提示一下各位菜鸟,关于随机取得表中任意N条记录的方法,很简单,就用newid():
    select top N * from table_name order by newid() ----N是一个你指定的整数,表是取得记录的条数

    展开全文
  • sql server 生成随机数

    2022-01-08 10:23:02
    sql server 生成随机数
    SET @orderCode=(SELECT ABS(CHECKSUM(NEWID())%900000)+100000);

    NEWID:

    newid()函数产生一个全球唯一的标识,该标识是由网卡号、CPU时钟组成。从而保证该函数调用的返回值是唯一的。

    CHECKSUM :

    返回按照表的某一行或一组表达式计算出来的校验和值。CHECKSUM 用于生成哈希索引。

    ABS:

    SQL Server中的此函数用于返回指定数字的绝对值。绝对值用于描述数字在数字线上距0的距离。由于数字的绝对值从不为负,因此不考虑数字从零开始的方向。此函数将可以隐式转换为数字数据类型的任何数字数据类型或任何非数字数据类型作为参数。此函数返回的值与参数的数字数据类型具有相同的数据类型。

    特征:

    • 此函数用于查找指定数字的绝对值。
    • 此函数接受单个参数。
    • 接受的参数为数字数据类型或可以隐式转换为数字数据类型的任何非数字数据类型。
    • 返回的值将与指定参数的数字数据类型具有相同的数据类型。

    参数:

    此方法接受如下参数:

    • number:指定要返回其绝对值的数值。

    返回值:

    它返回指定数字的绝对值。

    示例1:

    获取指定数字0的绝对值0。

    SELECT ABS(0);

    输出:

    0

    示例-2:

    获取指定数字的绝对值.7 -0.7

    SELECT ABS(-0.7);

    输出:

    .7

    示例3:

    将ABS()函数与变量一起使用,并获取指定数字123的绝对值123。

    DECLARE @Parameter_Value INT;
    SET @Parameter_Value = 123;
    SELECT ABS(@Parameter_Value);

    输出:

    123

    示例4:

    将ABS()函数与变量一起使用,并获取指定浮点值“-34.87”的绝对值34.87。

    DECLARE @Parameter_Value float;
    SET @Parameter_Value = -34.87;
    SELECT ABS(@Parameter_Value);

    输出:

    34.869999999999997

    应用:

    此函数用于返回指定数值的绝对值。

    展开全文
  • SQL SERVER 产生随机数的几种办法

    千次阅读 2018-09-24 17:57:53
    --产生随机数的几种办法: SELECT CHAR(65 + CEILING(RAND() * 25)) SELECT RIGHT(RAND(), 1) SELECT CHAR(65 + CEILING(RAND() * 25)) SELECT UPPER(CHAR(65 + CEILING(RAND() * 25))) SELECT RIGHT(RAND(), 1) ...
  • SQLserver生成随机数

    2010-07-09 01:56:00
    --生成1-100的随机数SELECT cast(rand() * (100) AS int) + 1
  • SQL server 随机数函数

    2020-09-11 08:59:50
    SQL server中,有个随机函数rand(),有不少新手可能不知道存在这个函数,现在我就把这个函数的一些随机数生成技巧写出来,这是面向菜鸟的,老鸟请不要拍砖呀,我的头还不够硬
  • sql-server-2017 在某一个区间内生成随机数 https://stackoverflow.com/questions/7878287/generate-random-int-value-from-3-to-6 原理,rand函数会...
  • sql server生成随机数

    2012-07-18 17:59:49
    --创建视图 create view myview as select re=rand() --自定义函数:取得指定范围的随机数 create function mydata( @a int, @b int) returns decimal(18,2) as begin
  • sqlserver 自定义函数随机产生指定范围的随机数/*--创建视图create view RandomView as select re=rand()--自定义函数:取得指定范围的随机数create function RandData(@a int,@b int)returns decimal(38,0)...
  • select cast(RAND()*...SQL Server当中生成一定范围的随机数 在查询分析器中执行:select rand(),可以看到结果会是类似于这样的随机小数:0.36361513486289558,像这样的小数在实际应用中用得不多,一般要取随...
  • SQLServer随机数的获取

    万次阅读 2018-05-07 18:55:39
    SQLServer获得随机数有两种方法: 一、使用rand获得随机数 二、使用Checksum结合NewID获得随机数 一、使用rand (1)Rand()函数是系统自带的获取随机数的函数,可以直接运行select rand() 获取0~1之间的float型...
  • SQL语句生成随机数的方法

    千次阅读 2020-06-23 17:13:07
    SQL中的随机函数rand(),属于SQL Server,我实在MySQL、Oracle和ODPS中进行的测试 比较 CEILING 和 FLOOR CEILING 函数返回大于或等于所给数字表达式的最小整数。FLOOR 函数返回小于或等于所给数字表达式的最大整数...
  • 本文介绍了在 Microsoft SQL Server生成随机数据的方法,包括随机数字、验证码、随机字符串以及随机日期和时间等,同时还介绍了如何生成 UUID,以及如何从表中返回随机记录。
  • sql server 函数--rand() 生成整数的随机数 rand() 定义: 返回从0到1之间的随机浮点值。 举例说明: select rand()as随机数 结果如图: select cast(floor(rand()*N)as int) --方法1 结果:20 select ...
  • Sqlserver虽然有rand()函数可以用,但单纯用rand()来获取随机数有很多限制,因为rand()生成的是类似0.747589267212168的随机小数,灵活处理一下就可以得到整数 1.select cast(ceiling(rand() * N) asint)//生成
  • 随机数可以通过程序生成,也可以通过SQL语句生成。...所以频繁插入时可以使用SQL语句的内置函数生成随机数,可以避免此类事情发生。Demo:===============================================================...
  • SQL Server 如何快速生成随机数

    千次阅读 2011-07-20 10:48:54
    SQL Server 如何快速生成随机数? 最近在论坛看到有人问,如何快速生成100万不重复的8位编号,对于这个问题,有几点是需要注意的:1. 如何生成8位随机数,生成的数越随机,重复的可能性当然越小2. 控制不重复3....
  •  在SQLServer中Checksum()需要传入1个参数,可以是任何类型,如下示例: SELECT CHECKSUM(1) --1 SELECT CHECKSUM('A') --114 SELECT CHECKSUM('AA') --34472462 SELECT CHECKSUM(GETDATE()) --18516390 ...
  • 最近在做一个项目,涉及到要生成N个8位的不重复的纯数字随机数作为优惠码,研究了一番,把结果分享给大家
  • 标签:在开发中很多时候,我们都会遇到这种需要生成一个指定范围随机数的情况。...下面我说一下生成指定范围随机数的思路,比如我要生成一个100-999范围内的随机数,我就要保证我写的生成随机数的表达...
  • ceiling(rand() * 15) 可生成1-15随机数 DATEADD(second,ABS(CHECKSUM(NEWID()))%DATEDIFF(second,'20160501' ,‘20161231’),'20160501') 生成'20160501' -‘20161231’之间随机时间 DECLARE @BDate ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,587
精华内容 5,034
关键字:

sqlserver生成随机数