sql server生成随机数
(2010-12-09 09:36:36)
标签:
随机数
整数
语句
表里
小数
it
|
分类:
我的工作笔记
|
-
Sqlserver虽然有rand()函数可以用,但单纯用rand()来获取随机数有很多限制,因为rand()生成的是类似0.747589267212168的随机小数,灵活处理一下就可以得到整数
- 1.select cast(ceiling(rand() * N) as int) //生成的数是N以内的证书
- 2.select cast(ceiling(rand(checksum(newid()))*N) as int) 这个同上,但在批量操作时往往这个会更有用,如
-
update table set field=cast(ceiling(rand() *5 ) as int) 和update table set field=cast(ceiling(rand(checksum(newid()))*N) as int)产生的效果就完全不同,前者虽然也是生成随机数了,但是所有table表里的field字段的数值都是一样的,而后者就各不相同,原理就是1是先生成随机数,然后再更新,2是更新每条记录前生成随机数。
- 3.将上面俩条语句中的ceiling换成floor就可以生成包含0的整数随机数。
- 4.随机查询得到N条记录用order by newid(),语句是select top N * from table order by newid()
喜欢
0
赠金笔
加载中,请稍候......