NEWID()生成随机唯一GUID编码
- NEWID()在扫描每条记录的时候都生成一个值, 而生成的值是随机的, 没有大小写顺序. 所以最终结果再按这个排序, 排序的结果就是无序的。
- 因为NEWID()返回的是uniqueidentifier类型的唯一值。NEWID()每次产生的值都不一样,那么根据这样的值进行排序,每次的结果也是不一样的。
- 原理是 把所有的ID出取然后用随机函数取出其中一个,然后用这个随机取到的ID去数据库里再取出记录,所有代价有点大。
随机查询前100条。
select top 100 NEWID() guid,* from Ixl_payment order by guid
rand()生成数字唯一码
在查询分析器中执行:select rand(),可以看到结果会是类似于这样的随机小数:0.304773440044009,但小数在实际应用中用得不多,一般要取随机数都会取随机整数。下面的两种随机取整数的方法:
select floor(rand()*N) —生成的数是这样的:12.0
0至N-1之间,如cast( floor(rand()*100) as int)就会生成0至99之间任一整数
select ceiling(rand() * 100)
1至N之间,如cast(ceiling(rand() * 100) as int)就会生成1至100之间任一整数