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

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

Susan Sarandon
リリース: 2024-12-29 01:54:10
オリジナル
596 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート