異なる列を持つテーブルをマージする(SQL Server)

アンジャリグプテ

次のような詳細のテーブルが2つあります

表1

Name | City | Employee_Id
-----------------
Raj  | CA   | A2345
Diya | IL   | A1234
Max  | PL   | A2321
Anna | TX   | A1222
Luke | DC   | A5643

表2

Name | City | Employee_Id | Phone | Age
---------------------------------------
Raj  | CA   | A2345       | 4094  | 25
Diya | IL   | A1234       | 4055  | 19
Max  | PL   | A2321       | 4076  | 23

ご覧のとおり、Employee_Idは両方の列に共通の列です。表1にあるすべてのエントリを表2に更新したいと思います。

Raj、Divya、およびMaxはすでに表2に存在します。したがって、表2に重複するエントリを作成して、これら3つのエントリをスキップしないでください。一方、AnnaとLukeは表2に存在しないため、これを新しい行として追加する必要があります。

SQLは、これら2つの列をマージし、すでに存在する行を無視できる必要があります。ファイナルテーブル2はこれに似ている必要があります。

表2

Name | City | Employee_Id | Phone | Age
---------------------------------------
Raj  | CA   | A2345       | 4094  | 25
Diya | IL   | A1234       | 4055  | 19
Max  | PL   | A2321       | 4076  | 23
Anna | TX   | A1222       |       |   
Luke | DC   | A5643       |       |   

これを達成する方法はありますか?私はSQLにかなり慣れていないので、どんな入力も大いに役立ちます。マージと更新の機能について読みましたが、マージはTransact-SQLにあると思います。結合についても読んでくださいが、これをクラックする方法を見つけることができませんでした。

Juan CarlosOropezaプレースホルダー画像

デモのセットアップ

CREATE TABLE Table1
    ([Name] varchar(4), [City] varchar(2), [Employee_Id] varchar(5));

INSERT INTO Table1
    ([Name], [City], [Employee_Id])
VALUES
    ('Raj', 'FL', 'A2345'),
    ('Diya', 'IL', 'A1234'),
    ('Max', 'PL', 'A2321'),
    ('Anna', 'TX', 'A1222'),
    ('Luke', 'DC', 'A5643');

CREATE TABLE Table2
    ([Name] varchar(4), [City] varchar(2), [Employee_Id] varchar(5), [Phone] int, [Age] int);

INSERT INTO Table2
    ([Name], [City], [Employee_Id], [Phone], [Age])
VALUES
    ('Raj', 'CA', 'A2345', 4094, 25),
    ('Diya', 'IL', 'A1234', 4055, 19),
    ('Max', 'PL', 'A2321', 4076, 23);

マージクエリ

MERGE Table2 AS target
    USING Table1 AS source 
    ON (target.[Employee_Id] = source.[Employee_Id])
    WHEN MATCHED THEN 
        UPDATE SET [Name] = source.[Name],
                   [City] = source.[City]
WHEN NOT MATCHED THEN
    INSERT ([Name], [City], [Employee_Id], [Phone], [Age])
    VALUES (source.[Name], source.[City], source.[Employee_Id], NULL, NULL);

SELECT *
FROM Table2    

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

SQL Serverは、異なるテーブルの列を持つ行をマップします

分類Dev

SQL Server:2つの異なるテーブルの列に一意性を課す方法

分類Dev

SQL SERVERで2つのテーブルをマージする方法は?

分類Dev

SQL Server : XML 列を持つ個別のテーブルを並べ替える

分類Dev

SQL Server2014の異なるサーバー上の2つのテーブルを比較します

分類Dev

2つの大きなテーブルを比較する(SQL Server)

分類Dev

SQL Server:異なるテーブルの2つのパラメーター間の重複を見つける

分類Dev

1 つのストアド プロシージャで 2 つの異なる SQL Server 2012 データベース テーブルをどのようにマージしますか?

分類Dev

SQL Server 2つのテーブルをマージし、不足している値を計算します

分類Dev

同じグループで列が異なる3つの異なるSQLをマージするにはどうすればよいですか(SQL Serverストアドプロシージャ)

分類Dev

SQL Serverで複数の列を同じテーブルの1つの列にマージするにはどうすればよいですか?

分類Dev

SQL Serverの同じテーブルを使用して、2つの異なる行を1つのテーブルに結合します

分類Dev

SQL Server 2008、同じ列情報を共有しない2つの異なるテーブルから2つの列を選択して、新しいテーブルを取得します

分類Dev

SQL Server 2008-2つの異なるテーブルから列に挿入します

分類Dev

SQL Server:2つのテーブルのデータをマージします

分類Dev

SQL Serverテーブルをピボットし、2つの列を同時にマージします

分類Dev

異なるデータベース(SQL Server)にある2つのテーブルを関連付けるにはどうすればよいですか?

分類Dev

SQL Serverの2つの異なるテーブルのセルのデータを比較するにはどうすればよいですか?

分類Dev

sql-serverで3つのテーブルを結合する

分類Dev

SQL Server:同じテーブル内の依存関係を持つ行を更新する

分類Dev

SQL Server:同じ列値と特定の2次列値を持つ別の行がある場合、テーブルから行を除外します

分類Dev

SQL Server2008で1つの異なる値を使用してテーブルからすべてを選択するには

分類Dev

SQL Server-特定の値のみを持つテーブル列を変更するにはどうすればよいですか?

分類Dev

Microsoft Server ManagementStudioの2つの異なるテーブルにわたるSQL更新

分類Dev

SQL Server - 同じテーブル内の異なる行から値を選択する方法

分類Dev

SQL Server:派生テーブルでパーセンテージを計算する

分類Dev

SQL Serverテーブルは、多くのレコードに解決されるテーブルへの外部キーを持つことができますか?

分類Dev

SQL Server : 構造の異なる 4 ~ 5 個のテーブルを結合します。

分類Dev

SQL Server:異なる列のアイテムをカウントしてグループ化します

Related 関連記事

  1. 1

    SQL Serverは、異なるテーブルの列を持つ行をマップします

  2. 2

    SQL Server:2つの異なるテーブルの列に一意性を課す方法

  3. 3

    SQL SERVERで2つのテーブルをマージする方法は?

  4. 4

    SQL Server : XML 列を持つ個別のテーブルを並べ替える

  5. 5

    SQL Server2014の異なるサーバー上の2つのテーブルを比較します

  6. 6

    2つの大きなテーブルを比較する(SQL Server)

  7. 7

    SQL Server:異なるテーブルの2つのパラメーター間の重複を見つける

  8. 8

    1 つのストアド プロシージャで 2 つの異なる SQL Server 2012 データベース テーブルをどのようにマージしますか?

  9. 9

    SQL Server 2つのテーブルをマージし、不足している値を計算します

  10. 10

    同じグループで列が異なる3つの異なるSQLをマージするにはどうすればよいですか(SQL Serverストアドプロシージャ)

  11. 11

    SQL Serverで複数の列を同じテーブルの1つの列にマージするにはどうすればよいですか?

  12. 12

    SQL Serverの同じテーブルを使用して、2つの異なる行を1つのテーブルに結合します

  13. 13

    SQL Server 2008、同じ列情報を共有しない2つの異なるテーブルから2つの列を選択して、新しいテーブルを取得します

  14. 14

    SQL Server 2008-2つの異なるテーブルから列に挿入します

  15. 15

    SQL Server:2つのテーブルのデータをマージします

  16. 16

    SQL Serverテーブルをピボットし、2つの列を同時にマージします

  17. 17

    異なるデータベース(SQL Server)にある2つのテーブルを関連付けるにはどうすればよいですか?

  18. 18

    SQL Serverの2つの異なるテーブルのセルのデータを比較するにはどうすればよいですか?

  19. 19

    sql-serverで3つのテーブルを結合する

  20. 20

    SQL Server:同じテーブル内の依存関係を持つ行を更新する

  21. 21

    SQL Server:同じ列値と特定の2次列値を持つ別の行がある場合、テーブルから行を除外します

  22. 22

    SQL Server2008で1つの異なる値を使用してテーブルからすべてを選択するには

  23. 23

    SQL Server-特定の値のみを持つテーブル列を変更するにはどうすればよいですか?

  24. 24

    Microsoft Server ManagementStudioの2つの異なるテーブルにわたるSQL更新

  25. 25

    SQL Server - 同じテーブル内の異なる行から値を選択する方法

  26. 26

    SQL Server:派生テーブルでパーセンテージを計算する

  27. 27

    SQL Serverテーブルは、多くのレコードに解決されるテーブルへの外部キーを持つことができますか?

  28. 28

    SQL Server : 構造の異なる 4 ~ 5 個のテーブルを結合します。

  29. 29

    SQL Server:異なる列のアイテムをカウントしてグループ化します

ホットタグ

アーカイブ