SQL Server のレコード制限: LIMIT を超えました
SQL Server は、他のデータベース システムで一般的に使用される LIMIT 関数または OFFSET 演算子をサポートしていません。これは、取得するレコードの数を制限する場合に課題となる可能性があります。
ただし、SQL Server は、同様の機能を実現する別の方法を提供します。 1 つの方法は、WHERE 句で ROW_NUMBER() 関数を使用することです。
<code class="language-sql">SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (ORDER BY name) AS row FROM sys.databases ) a WHERE row > 5 AND row <= 10</code>
もう 1 つの方法は、TOP 句を使用することです:
<code class="language-sql">SELECT TOP 10 * FROM stuff</code>
SQL Server にはなぜ LIMIT がないのですか?
SQL Server に LIMIT 関数がないのは、パフォーマンス上の考慮事項が原因である可能性があります。 LIMIT を使用すると、特に大きなテーブルでパフォーマンスが低下する可能性があります。 SQL Server はクエリ実行時間の最適化を優先します。
OFFSET と ROWS を使用する
SQL Server 2012 以降では、OFFSET キーワードと ROWS キーワードを使用して、結果セットをより詳細に制御できます。
<code class="language-sql">SELECT * FROM sys.databases ORDER BY name OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY</code>
以上がLIMIT を使用せずに SQL Server で取得されるレコードの数を制限するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。