sql随机查询数据order by newid()

Posted WebAPI

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql随机查询数据order by newid()相关的知识,希望对你有一定的参考价值。

方法1:最普通的写法,性能慢

SELECT top 10 ID,name FROM dt_keyword ORDER BY NEWID()

 

方法2:性能还可以

//先给数据库增加一列
ALTER
TABLE dt_keyword ADD SortKey AS NEWID()
//查询时执行下边sql
SELECT top 10 ID,name FROM dt_keyword WHERE SortKey LIKE A%B%C%D%E%F%

 

方法3:效率还好,含sql2008以上支持

SELECT TOP 10 * FROM dt_keyword tablesample (10000 Rows)

 

方法4:如果id连续,速度最快

SELECT top 10 * FROM dt_keyword   
where id>=(select count(ID) from dt_keyword)*rand()

 

方法5:如果id不连续,速度最快

SELECT top 10 * FROM dt_keyword   
where id>=(select max(ID) from dt_keyword)*rand()

 

//如果您有更好的方法请留言

以上是关于sql随机查询数据order by newid()的主要内容,如果未能解决你的问题,请参考以下文章

SQL如何使用order by语句查询数据表的多字段

SQL数据库中查询语句Order By和Group By有啥区别

sql里 where和order by一起使用是怎样的顺序

MySQL使用rand函数实现随机数

sql 大数据查询慎用 order by

sql中order by 待排序的字段值相同时,发生分页出现重复数据的问题