sql随机数函数
‘壹’ 如何在sql里生成随机数
从 RAND 生成随机数的常用方法是,用相对可变的某个值作为种子值,例如将 GETDATE 的几个部分累加:
SELECT RAND( (DATEPART(mm, GETDATE()) * 100000 )
+ (DATEPART(ss, GETDATE()) * 1000 )
+ DATEPART(ms, GETDATE()) )
‘贰’ 怎么用SQL语句实现某个字段数为随机数,如一个表里的学号字段,怎么让这个学号自动生成7位数的随机数
1、以某整数字段为种子(没有的话要生成一个)
2、通过RAND函数生成一个0-1之间的随机数。如0.7136106261841817
3、然后转换成文本型
4、再取后7位即可RIGHT(CONVERT(VARCHAR,RAND(序号)),7) 。
具体语句如下:
如果表中有一个字段为整型的序号或标识列,那么就可以以序号为种子生成随机的学号字段。
UPDATE TABLENAME SET 学号=RIGHT(CONVERT(VARCHAR,RAND(序号)),7) WHERE 序号 IS NOT NULL
如果没有整型的序号或标识列,就要根据表中能够唯一标识确定某行的关键字段来生成学号,如ID
UPDATE TABLENAME SET 学号=RIGHT(CONVERT(VARCHAR,rand((select count(1) from tablename a where a.id>=tablename.id))),7)
‘叁’ sql中的随机函数怎么用
sql server的rand()函数:返回0到1之间的随机浮点值
round()函数:返回数值表达式,舍入到指定长度或精度。
例如随机取得0~99之间的数: round(rand()*100,0)
随机取得100~199之间的数:round(rand()*100+100,0)
‘肆’ 请问大家如何在SQL里生成四位随机数
在SQL里先随机生成1个数字,1-9,A,在随机生成3个数字,0-9,BCD。然后随机生成的四位数为:A*1000+B*100+C*10+D。
‘伍’ sql server 怎么生成随机数
rand() 定义: 返回从0到1之间的随机浮点值。
举例说明:
select rand() as 随机数 结果如图:
select cast( floor(rand()*N) as int ) --方法1
结果:20
select cast( ceiling(rand()*N) as int ) --方法2
结果:43
大致一看,这两种方法没什么区别,区别就是他们的生成随机数的范围:
方法1的数字范围:0至N-1之间,如cast( floor(rand()*100) as int)就会生成0至99之间任一整数
方法2的数字范围:1至N之间,如cast(ceiling(rand() * 100) as int)就会生成1至100之间任一整数
比较 CEILING 和 FLOOR
CEILING 函数返回大于或等于所给数字表达式的最小整数。FLOOR 函数返回小于或等于所给数字表达式的最大整数。
例如,对于数字表达式 12.9273,CEILING 将返回 13,FLOOR 将返回 12。
‘陆’ SQL语句随机产生随机数
产生随机数:right(rand(),4)
rand()返回一大串带小数点的数字,用right()截取后面的四位是不是变成了整数
‘柒’ 在SQL Server数学函数中,获取0~1之间的随机值的函数是什么
MSSQLSERVER如要获取0~1之间的随机数可以使用下列表达式:
Floor(2* Rand())
例如每次运行下列SQL语句,将随机返回0或1
selectFloor(2*Rand());
请注意MSSQL的SQL语言,每次运行select,不论检索出多少行,随机函数rand都将返回相同的随机数。
另外,需要返回某个指定范围的随机整数请参考下列公式:
Floor((upperbound - lowerbound + 1) * Rand() + lowerbound)
参数说明:
upperbound 为正整数上限
lowerbound 为正整数下限
Rand()为系统随机函数
Floor()为系统函数,返回小于或等于所给数字表达式的最大整数。
有不同需要时,照套上述公式就可以了。