加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

sql server生成随机数

(2010-12-09 09:36:36)
标签:

随机数

整数

语句

表里

小数

it

分类: 我的工作笔记
  1. Sqlserver虽然有rand()函数可以用,但单纯用rand()来获取随机数有很多限制,因为rand()生成的是类似0.747589267212168的随机小数,灵活处理一下就可以得到整数   
  2. 1.select cast(ceiling(rand() N) as int//生成的数是N以内的证书   
  3. 2.select cast(ceiling(rand(checksum(newid()))*N) as int这个同上,但在批量操作时往往这个会更有用,如   
  4. 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是更新每条记录前生成随机数。   
  5. 3.将上面俩条语句中的ceiling换成floor就可以生成包含0的整数随机数。   
  6. 4.随机查询得到N条记录用order by newid(),语句是select top from table order by newid() 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有