概要:このチュートリアルでは、SQL Server ROW_NUMBER()
結果セットの各行に順次整数を割り当てる関数。
SQL Server ROW_NUMBER()関数の概要
ROW_NUMBER()
結果セットのパーティション内の各行に順次整数を割り当てるウィンドウ関数です。各パーティションの最初の行の行番号は1から始まります。
次に、ROW_NUMBER()
関数の構文を示します。
ROW_NUMBER()
関数の構文を詳しく調べます。
PARTITION BY
PARTITION BY
句は、結果セットをパーティション(行のグループの別名)に分割します。 ROW_NUMBER()
関数は各パーティションに個別に適用され、各パーティションの行番号を再初期化します。
PARTITION BY
句オプションです。スキップすると、ROW_NUMBER()
関数は結果セット全体を単一のパーティションとして扱います。
ORDER BY
ORDER BY
句は、結果セットの各パーティション内の行の論理的な順序を定義します。 ROW_NUMBER()
関数は順序に依存するため、ORDER BY
句は必須です。
SQLサーバーのROW_NUMBER()の例
サンプルデータベースのsales.customers
テーブルを使用して、ROW_NUMBER()
関数を示します。 。
SQL Server ROW_NUMBER()の使用結果セットの例に対する関数
次のステートメントは、ROW_NUMBER()
を使用して、各顧客行に連番を割り当てます。
これは部分的なものです。出力:
この例では、 PARTITION BY
句をスキップしたため、ROW_NUMBER()
は結果セット全体を単一のパーティションとして扱いました。
SQLの使用パーティション上のサーバーROW_NUMBER()の例
次の例では、ROW_NUMBER()
を使用しています。各顧客に順次整数を割り当てる関数。都市が変更されると、番号がリセットされます。
次の図は、部分的な出力を示しています。
この例では、PARTITION BY
句を使用して、顧客を都市ごとのパーティションに分割しました。都市が変更されたときに行番号が再初期化されました。
SQL Server ROW_NUMBER()を使用したページ付け
ROW_NUMBER()
関数はページ付けに役立ちますアプリケーションで。たとえば、ページごとに顧客のリストを表示できます。各ページには10行あります。
次の例では、ROW_NUMBER()
を使用して行11から顧客を返します。 2ページ目である20まで:
出力は次のとおりです。
この例では:
- 最初に、CTEは
ROW_NUMBER()
関数を使用して割り当てました結果のすべての行は順次整数を設定します。 - 次に、外部クエリは、行番号が11〜20の2番目のページの行を返しました。
このチュートリアルでは、SQL Server ROW_NUMBER()
関数を使用して、クエリのパーティション内の各行に順次整数を割り当てる方法を学習しました。