笔记总结:sql server如何生成随机数

时间:2016-08-21
简介:数据库|总结了关于SQL产生随机数的方法和区别:如随机查询得到N条记录用order by newid(),语句是select top N * from table or

下面总结了关于SQL产生随机数的方法和区别:


  1. Sqlserver虽然有rand()函数可以用,但单纯用rand()来获取随机数有很多限制,因为rand()生成的是类似0.747589267212168的随机小数,灵活处理一下就可以得到整数

  2. .select cast(ceiling(rand() * N) as int//生成的数是N以内的整数

  3. 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是更新每条记录前生成随机数。   

  4. 将上面俩条语句中的ceiling换成floor就可以生成包含0的整数随机数。

  5. 随机查询得到N条记录用order by newid(),语句是select top N * from table order by newid() 

TAGS:sql server生成随机数

上一编:SQL语句查询今天、昨天、7天内、30天数据

下一编:select @@identity用法详解

New Hot