SQL Server 2008 で ROW_NUMBER() をページネーションに使用する方法
ページネーションとは、大きな結果セットを管理可能なページに分割するための手法です。効率的なデータ検索に不可欠です。 SQL Server 2008 では、ページネーションのためのいくつかの方法が提供されており、そのうちの 1 つは ROW_NUMBER() 関数を使用する方法です。
ROW_NUMBER() 関数
ROW_NUMBER() は、ウィンドウ関数です。指定された値に基づいて、結果セット内の各行に一意の連続番号を生成します。順序付け。
構文:
ROW_NUMBER() OVER (PARTITION BY partition_expression ORDER BY order_expression)
ページネーションでの使用法
ページネーションに ROW_NUMBER() を使用するには、次のように共通テーブル式 (CTE) を作成できます。
WITH CTEResults AS ( SELECT IDColumn, SomeField, DateField, ROW_NUMBER() OVER (ORDER BY DateField) AS RowNum FROM MyTable )
この CTE は、連続番号 (RowNum) を割り当てます。 MyTable の各行は、DateField 順に並べられます。
特定のページを取得するには、CTE をフィルターできます。
SELECT * FROM CTEResults WHERE RowNum BETWEEN @PageNumber * @PageSize AND (@PageNumber + 1) * @PageSize;
このクエリでは、@PageNumber は目的のページ番号を表します。 、 @PageSize はページごとの行数です。たとえば、それぞれ 10 行の 2 ページ目を取得するには、次を使用します。
SELECT * FROM CTEResults WHERE RowNum BETWEEN 10 AND 20;
ROW_NUMBER() を使用する利点
以上がROW_NUMBER() を使用して SQL Server 2008 のページネーションを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。