当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 如何随机选取n条记录或者对记录作随机排序?

MSSQL
黑客经验谈 MSSQL SA权限入侵的感悟
3个步骤结束网站恶梦-SQL注入隐患!
用人工智能自动对SQL语句进行重写
防范sql注入式攻击js版本
SQL Server 2005数据库镜像配置脚本示例
SQL Server和Oracle的真正区别
如何把Access的数据导入到Mysql中
看看自己掌握了多少SQL快捷键
SQL2005数据库转到SQL2000的步骤
SQL“多字段模糊匹配关键字查询”
高手是怎样炼成的:精妙SQL语句介绍
SQL Server 2000数据库崩溃后的补救措施
SQL Server日志清除的两种方法教程简介
教你快速掌握数据库设计范式的基本概念
远程连接SQL Server 2000服务器的解决方案
循序渐进讲解数据表的十二个设计原则
经验总结:讲解大型数据库的设计准则
开发环境下优化SQl语句的十个重要步骤
如何查看并导出数据表中字段的注释信息
SQL Server 2005改进后的几个实用新特性

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 104 ::
收藏到网摘: n/a

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