ホームページ >データベース >mysql チュートリアル >行番号に基づいて SQL Server テーブルを結合し、順序を制御するにはどうすればよいですか?

行番号に基づいて SQL Server テーブルを結合し、順序を制御するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-29 01:54:10610ブラウズ

How Can I Join SQL Server Tables Based on Row Number and Control Ordering?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。