一直想找个除了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

最新文章

  1. Deep Learning 3_深度学习UFLDL教程:预处理之主成分分析与白化_总结(斯坦福大学深度学习教程)
  2. 29、shiro框架入门
  3. Spring3.2.2之后不赞成使用queryForInt
  4. js——<script>标签的加载顺序
  5. 一次我们网站的web性能优化
  6. 查找DOM
  7. Fetching android sdk component information
  8. 【原创】shadowebdict开发日记:基于linux的简明英汉字典(四)
  9. [SinGuLaRiTy] 2017-03-27 综合性测试
  10. C#第二篇——关于C#中的正则表达式
  11. concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
  12. crm 理解
  13. (转)CentOS7安装Nginx1.14.2
  14. C# 百度搜索结果xpath分析
  15. Android 控件: Webview 的一些知识点
  16. Python urllib2 proxy
  17. 【Python】【上下文管理器】
  18. JAVA中的内联函数
  19. js函数前加分号和感叹号的作用
  20. UNIX域套接字——UNIX domain socket(DGRAM)

热门文章

  1. 代码实现排列组合【Java】
  2. day 14作业
  3. Zabbix Documentation 4.0
  4. Give root password for maintenance
  5. kill详解
  6. Kotlin协程重要概念详解【纯理论】
  7. synchronize——对象锁和类锁
  8. LeetCode 845. Longest Mountain in Array
  9. springboot(二)
  10. 洛谷 P1908 逆序对 题解