ホームページ >データベース >mysql チュートリアル >OFFSET と FETCH を使用して SQL Server でページネーションを実装するにはどうすればよいですか?
OFFSET と FETCH を使用して SQL Server にページングを実装する
SQL Server には、MySQL や SQL の LIMIT
句に直接相当するものはありません。ただし、OFFSET
句と FETCH
句を使用して同様の機能を実現する別の方法が提供されます。
オフセットとフェッチ
OFFSET
と FETCH
を使用してページネーションを実装するには、次の手順に従います。
ORDER BY
句を使用して、データを希望の順序で並べ替えます。 OFFSET
句は、結果セットの先頭でスキップする行数を指定します。 FETCH
句は、オフセット行をスキップした後に返される行数を指定します。 例:
<code class="language-sql">SELECT * FROM sys.databases ORDER BY name OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY;</code>
このクエリは、最初の 5 行 (OFFSET 5 ROWS
) をスキップし、次の 5 行 (FETCH NEXT 5 ROWS ONLY
) を返します。
古い SQL Server バージョンの代替:
2012 より前の SQL Server バージョンの場合、効率性の低い代替手段が存在します。
LIMIT を逃した理由
LIMIT
句は、主に歴史的およびアーキテクチャ上の理由から SQL Server にありません。 Microsoft は、高いパフォーマンスとデータの整合性を重視して SQL Server を設計しており、OFFSET
および FETCH
メカニズムはページングにとってより効率的で多用途であると考えられています。ただし、最近のバージョンでは SQL Server が更新され、ROW_NUMBER()
およびその他の最適化が組み込まれ、OFFSET
と FETCH
が LIMIT
とより同等になりました。
以上がOFFSET と FETCH を使用して SQL Server でページネーションを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。