首页 > 数据库技术 > 详细

SqlServer中获取随机值

时间:2021-06-21 23:51:29      阅读:31      评论:0      收藏:0      [点我收藏+]

使用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

输出为

技术分享图片

参考

SQLServer随机数的获取

SqlServer中获取随机值

原文:https://www.cnblogs.com/strongmore/p/14915600.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!