次のステートメントの何が問題になっていますか?SQLServer2008を使用しています。
use Demo;
SELECT * FROM users
limit 0 , 30
私が得た:
Msg 102, Level 15, State 1, Line 4
Incorrect syntax near '0'.
それは本当に奇妙です。Googleを試しましたが、あまり情報が見つかりませんでした。
次のステートメントの何が問題になっていますか?SQLServer2008を使用しています。
use Demo;
SELECT * FROM users
limit 0 , 30
私が得た:
Msg 102, Level 15, State 1, Line 4
Incorrect syntax near '0'.
それは本当に奇妙です。Googleを試しましたが、あまり情報が見つかりませんでした。
LIMIT
MySQLキーワードです。MSSQLServerでTOP
またはROWCOUNT
キーワードを使用します。
TOP
変数を受け入れることができることに注意してください。SELECT TOP( @NumberOfRows ) * FROM Foo;
参照:SQL Server 2005でLIMITキーワードを使用する方法は?(2008年にも有効)
LIMIT
使用方法に応じて、との間には重要な違いがLIMIT
ありますTOP
(データの範囲/ページと結果の数を制限するだけ)。その場合、MSSQL構文はより冗長になります。通常、ROW_NUMBER()関数は、目的のページに有効な値を計算するために、いくつかの単純なロジックと組み合わせてトリックを実行します。
SELECT * FROM
(
SELECT
ROW_NUMBER() OVER( ORDER BY SomeColumn ASC ) AS RowNumber,
AnotherColumn
FROM dbo.MyTable
) Q
WHERE RowNumber BETWEEN 20 AND 30; -- these integers can be variables
select top 30 * from users
SQL Serverは、フォームではなくその構文を使用します。limit
limit
SQL Serverはこの句(つまり、MySQLとPostgreSQLの構文)をサポートしていません。top
次のように使用する必要があります。
select top 30 * from users