如何随机选取n条记录或者对记录作随机排序?

2016-01-29 16:17 59 1 收藏

如何随机选取n条记录或者对记录作随机排序?,如何随机选取n条记录或者对记录作随机排序?

【 tulaoshi.com - SQLServer 】

  Q. 如何得到随机排序结果?

A. 要得到随机排序的列,或者返回x条随机选择的列,你可以使用随机数。但是RAND函数在一个查询中只能返回一个结果。你可以在NOWID函数返回的列上做ORDER BY。请看示例:

SELECT *
FROM Northwind..Orders
ORDER BY NEWID()

SELECT TOP 10 *
FROM Northwind..Orders
ORDER BY NEWID()

这段话翻译得真是费劲,干脆不管原文,直接意译了。
不过提醒大家注意,这种方法是要对整个表扫描,然后产生一个计算列再排序的,最好不要对大的表作这样的操作,否则会很慢的。


Q. How can I randomly sort query results?

A. To randomly order rows, or to return x number of randomly chosen rows, you can use the RAND function inside the SELECT statement. But the RAND function is resolved only once for the entire query, so every row will get same value. You can use an ORDER BY clause to sort the rows by the result from the NEWID function, as the following code shows:

SELECT *
FROM Northwind..Orders
ORDER BY NEWID()

SELECT TOP 10 *
FROM Northwind..Orders
ORDER BY NEWID()


—SQL Server MVPs
 

来源:http://www.tulaoshi.com/n/20160129/1498172.html

延伸阅读
标签: Web开发
代码如下: 本文相关代码如下: Access: select top n * from table order by rnd(id)'id为数据库的自动编号字段 Sql Server: select top n * from table order by newid() 但在ASP+Access中,或许是因为缓存的原因,第一条SQL语句无法得到预期的结果,而VB+Access则可以。解决办法是改用如下SQL语句:    本文相关代码如下: Rand...
标签: Web开发
和数据库排序一样,XSL/XSLT也可以实现随机排序,原理也很简单,下面就是代码。 ?xml version="1.0"? xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"   xmlns:msxsl="urn:schemas-microsoft-com:xslt"   xmlns:eMeng="http://dotnet.aspx.cc/"   version="1.0" msxsl:script...
代码如下: #include iostream #include stdio.h #include set using namespace std; int main() {     int n,a,i;     setintm;     while(scanf("%d",&n)!=EOF)     {         for(i=0;in;i++)      ...
标签: ASP
  各位好今天我要告诉大家的是如何用ASP产生随机数。大家都知道大多数网站注册后 提供用户名和一个随机密码,但这个密码是如何产生的,现在我就向大家来介绍一下 请看下面的例子,用户可自行增加或减少随机的字符或数量。 <% Function gen_key(digits) 'Create and define array dim char_array(50) char_array(0) = "0"...
标签: SQLServer
  select * from table1 where id not in (select top 10 Id from table1 order by inidate) 

经验教程

812

收藏

31
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部