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