随机行选择存储过程

时间:2011-08-22 11:11:28

标签: sql-server random

  

可能重复:
  Select n random rows from SQL Server table

我有这样的数据库和表:

id  Name
--  -----
1   Jim
2   John
3   Jaimy

我想随机选择结果中的一行。 SQL Server中有任何功能吗?

2 个答案:

答案 0 :(得分:4)

这可能会为你做到 -

SELECT TOP 1 id, Name
FROM Persons
ORDER BY NEWID()

随机纯粹主义者不会喜欢它。它的工作原理是为每一行生成一个新的GUID。 如果Persons表中有很多行,也可能会损害性能。理想情况下,您希望找到一种方法来最小化您首先运行的行数。

有一个更详细的answer in this question可以完全回答这个问题。

答案 1 :(得分:1)

您可以使用以下内容:

SELECT TOP 1 id, Name
FROM Persons
ORDER BY NEWID()