ホームページ >データベース >mysql チュートリアル >SQL Server で行オフセットを効率的に実装するにはどうすればよいですか?
SQL Server の行のオフセット
標準 SQL 構文は、指定されたオフセットから開始する結果の取得を直接サポートしていません。 OFFSET 句を提供する他のデータベース システムとは異なり、SQL Server では、不要な行を抽出せずに同様の機能を実現するには、別のアプローチが必要です。
SQL Server 2005 以降
2005 以降では、ROW_NUMBER() 関数を派生テーブルおよび WHERE 句と組み合わせて使用して、結果を効率的にオフセットできます。例は次のとおりです:
<code class="language-sql">SELECT col1, col2 FROM ( SELECT col1, col2, ROW_NUMBER() OVER (ORDER BY ID) AS RowNum FROM MyTable ) AS MyDerivedTable WHERE MyDerivedTable.RowNum BETWEEN @startRow AND @endRow</code>
このクエリでは、ROW_NUMBER() 関数が ID 列に基づいて各行にシーケンス番号を割り当て、正しい並べ替えを保証します。
SQL Server 2000
SQL Server 2000 の場合は、次のような他のテクノロジを検討できます。
以上がSQL Server で行オフセットを効率的に実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。