SQL Server での行番号でのテーブルの結合
SQL Server 2008 では、ROW_NUMBER( ) 関数。この関数は、オプションの並べ替え仕様に基づいて、テーブル内の各行に一意の連続番号を割り当てます。
結合行を垂直方向に並べるクエリ:
テーブルを結合するには Aと B を行番号に入力し、行の垂直方向の順序を維持するには、次のコードを使用します。クエリ:
SELECT A.val, B.val FROM ( SELECT val, ROW_NUMBER() OVER (ORDER BY val) AS row_num FROM A ) AS A JOIN ( SELECT val, ROW_NUMBER() OVER (ORDER BY val) AS row_num FROM B ) AS B ON A.row_num = B.row_num ORDER BY A.val, B.val;
結合された行を水平方向に並べるクエリ:
ソートせずに行を水平方向に結合する場合は、ORDER BY 句を PARTITION に置き換えます。による句:
SELECT A.val, B.val FROM ( SELECT val, ROW_NUMBER() OVER (PARTITION BY 1) AS row_num FROM A ) AS A JOIN ( SELECT val, ROW_NUMBER() OVER (PARTITION BY 1) AS row_num FROM B ) AS B ON A.row_num = B.row_num;
例:
提供されたサンプル テーブル A と B を使用すると、最初のクエリは次の出力を生成します:
RowA Row1 RowB Row2 RowC Row3 RowD Row4
2 番目のクエリは、水平結合を表す次の出力を生成します:
RowA Row4 RowB Row3 RowC Row2 RowD Row1
以上が行番号に基づいて SQL Server テーブルを結合し、順序を制御するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。