码迷,mamicode.com
首页 > 数据库 > 详细

SQLServer newID()

时间:2019-11-15 15:42:28      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:数据库   where   随机函数   大小   hive   htm   结果   生成   根据   

一直想找个除了newid() 外高效取随机数的方法, 有点遗憾,木有找到,谁有除了newid()以外更高效的 请留言,谢谢

从A表随机取2条记录,用SELECT TOP 10 * FROM ywle order by newid()
order by 一般是根据某一字段排序,newid()的返回值 是uniqueidentifier ,order by newid()随机选取记录是如何进行的
newid()在扫描每条记录的时候都生成一个值, 而生成的值是随机的, 没有大小写顺序. 所以最终结果再按这个排序, 排序的结果当然就是无序的了
或者
select   top   10   *,newid()   as   Random   from   ywle where   ywlename=‘001‘   ordey   by   Random
下者效率要高些
因为newid()返回的是uniqueidentifier类型的唯一值。newid()每次产生的值都不一样,那么根据这样的值进行排序,每次的结果 也是不一样的。
原理是 把所有的ID出取然后用随机函数取出其中一个,然后用这个随机取到的ID去数据库里再取出记录,所有代价有点大。

 

 

from: https://www.cnblogs.com/wuming/archive/2010/02/24/1672906.html

 

SQLServer newID()

标签:数据库   where   随机函数   大小   hive   htm   结果   生成   根据   

原文地址:https://www.cnblogs.com/baxianhua/p/11867087.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!