SqlServer中获取随机值
使用rand()函数
select rand()
输出
0.0329578509224172
rand()函数获取区间(0,1)之间的float类型的数,但不支持在查询中添加一列随机值
select rand(),* from rent_device
输出结果为
生成的随机数一样
使用checksum()函数和newid()函数
select newid()
输出
CCC6DD8A-C6D9-406E-8753-88FAECE53106
得到一个类似于java中UUID的唯一值
select checksum(1),checksum(-1),checksum('abc'),checksum(newid())
checksum()函数可以当做一个哈希函数
select convert(bigint,right(abs(checksum(newid())),9)) * 1.0 / 1000000000
newid()得到一个唯一值,checksum()将字符串哈希成一个数字,abs()取绝对值,right()取右边的后9位,convert()将字符串转换成bigint类型,运算之后得到
0.541767396000
可以达到rand()类似的效果,且支持添加一列随机值
select convert(bigint,right(abs(checksum(newid())),9)) * 1.0 / 1000000000 随机数,* from rent_device
输出为