web-dev-qa-db-ja.com

SQL Server 2005で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をサポートしていませんか?もしそうなら、どうすればこれを行うことができますか?

26
user11445

SQL Server Books OnlineのSELECTステートメントを見ると、TOPキーワードを使用して結果セットを制限できることがわかります。

SELECT TOP 1 * FROM employee
44
SELECT TOP 1 * FROM Employee ORDER BY newid()

行ごとに1回評価されるようにするには、newid()を使用する必要があります。

5
Jonas Lincoln

私はこのかなり単純なもの(SQL2005)を使用して、返される行の数を制限しています。これは、ストアード・プロシージャー・パラメーターによって提供される値でも機能します。

DECLARE @Limit int
SET @Limit = 10
SELECT TOP (@Limit) Col1, Col2 FROM SomeTable
0
Stuntbeaver