我在这篇帖子中找到了一种从表中选择随机行的方法。一个建议是使用以下查询:
SELECT * FROM employee ORDER BY RAND() LIMIT 1
但是当我在 MS SQL 2005 中运行此查询时,会收到以下错误消息
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'LIMIT'.
有人能告诉我错在哪里吗?MS SQL不支持LIMIT吗?如果不支持,那我该如何处理?
我在这篇帖子中找到了一种从表中选择随机行的方法。一个建议是使用以下查询:
SELECT * FROM employee ORDER BY RAND() LIMIT 1
但是当我在 MS SQL 2005 中运行此查询时,会收到以下错误消息
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'LIMIT'.
有人能告诉我错在哪里吗?MS SQL不支持LIMIT吗?如果不支持,那我该如何处理?
如果你查看SQL Server Books Online中的SELECT语句,你会发现可以使用TOP关键字来限制结果集。
SELECT TOP 1 * FROM employee
SELECT TOP 1 * FROM Employee ORDER BY newid()
您需要使用newid()函数才能使其在每行中仅评估一次。
DECLARE @Limit int
SET @Limit = 10
SELECT TOP (@Limit) Col1, Col2 FROM SomeTable