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

ProgSky

行と列の値のマッピングに基づいて結果を作成しようとしています。これは例です

最初のテーブル(#column_table)にはcolunm_idとcolumn_nameがあります。

ここに画像の説明を入力してください

2番目のテーブル#column_valueには、最初のテーブルの行の値があります。

ここに画像の説明を入力してください

以下のようなデータセットを作成したいと思います。

ここに画像の説明を入力してください

どうすればそれを達成できますか?

データ設定用の一時テーブルは次のとおりです。

create table #column_table (column_id int, column_name varchar(50) )

insert into #column_table
values
(1, 'FirstName'),
(2, 'LastName'),
(3, 'Address'),
(4, 'Phone')


create table #column_value(FirstName varchar(50), LastName varchar(50), Phone varchar(50),)

insert into #column_value
values
('John','Smith','1234567')

select * from  #column_table
select * from #column_value
ジョン・キャパレッティ

UNPIVOTの方がパフォーマンスが高くなりますが、実際に動的SQLを使用せずに、より動的なアプローチが必要な場合

Select  D.Column_ID
       ,Column_Value = C.Value
 From  #column_value A
 Cross Apply (values (convert(xml,(Select A.* For XML Raw)))) B(XMLData)
 Cross Apply (
                Select Item  = xAttr.value('local-name(.)', 'varchar(100)')
                      ,Value = xAttr.value('.','varchar(max)')
                 From  XMLData.nodes('//@*') xNode(xAttr)
             ) C
 Join #column_table D on C.Item=D.Column_Name

戻り値

Column_ID   Column_Value
1           John
2           Smith
4           1234567

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

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

分類Dev

SQLは、異なる列を持つ2つのテーブルを結合します

分類Dev

SQL SELECTは、2つの異なるテーブルの列のMAX値を持つ行のみを選択します

分類Dev

SQL-2つの行を、異なる列で値とnullを持つ列でグループ化します

分類Dev

SQL異なるテーブルの列値と一致する列値を持つ行を選択します

分類Dev

SQLは、列名が異なる2つの異なるテーブルから行を選択します

分類Dev

異なる列を持つSQLの行バインドテーブル

分類Dev

SQL-同じDOBを持つ異なるテーブルの2つの列から行を検索するコマンド

分類Dev

SQL 2つの異なる列だけでなく、1つの異なる列が必要な行をテーブルに挿入します

分類Dev

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

分類Dev

SQL:2つの異なるテーブルから2つの異なる列をカウントします

分類Dev

SQL複数の列を持つテーブルの行を比較します

分類Dev

Microsoft SQL SERVER:最初の異なる行に従って行を30分ずつグループ化します(行は異なる曜日と時刻を持つことができます)

分類Dev

異なる列を持つ2つのテーブルのSQL結合

分類Dev

SQL-Serverは、3つの列間で異なる行を選択します

分類Dev

SQLはタイムスタンプで2つの異なるテーブルを結合します

分類Dev

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

分類Dev

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

分類Dev

SQL同じキーと異なる列を持つ行を選択します

分類Dev

SQL-2つの異なるテーブルから列データをプルして使用する

分類Dev

SQLの2つの異なるテーブルから3つの列を要約します

分類Dev

SQLキーを使用して2つのテーブルを異なる列に結合します

分類Dev

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

分類Dev

重複を取得し、異なるテーブルSQLの列を更新します

分類Dev

SQL-異なる値を持つ別のテーブルから列を2回選択する

分類Dev

他のテーブルの主キーにマップする列をSQLテーブルに作成します

分類Dev

SQL Server:1つの行と同様の列値を持つ行をグループ化し、対応する行を合計します

分類Dev

SQLの4つの異なるテーブルの列値を合計します

分類Dev

SQLの結合クエリを使用して、3番目のテーブルを持つ2つの異なるテーブルから2つの列のカウントを取得します

Related 関連記事

  1. 1

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

  2. 2

    SQLは、異なる列を持つ2つのテーブルを結合します

  3. 3

    SQL SELECTは、2つの異なるテーブルの列のMAX値を持つ行のみを選択します

  4. 4

    SQL-2つの行を、異なる列で値とnullを持つ列でグループ化します

  5. 5

    SQL異なるテーブルの列値と一致する列値を持つ行を選択します

  6. 6

    SQLは、列名が異なる2つの異なるテーブルから行を選択します

  7. 7

    異なる列を持つSQLの行バインドテーブル

  8. 8

    SQL-同じDOBを持つ異なるテーブルの2つの列から行を検索するコマンド

  9. 9

    SQL 2つの異なる列だけでなく、1つの異なる列が必要な行をテーブルに挿入します

  10. 10

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

  11. 11

    SQL:2つの異なるテーブルから2つの異なる列をカウントします

  12. 12

    SQL複数の列を持つテーブルの行を比較します

  13. 13

    Microsoft SQL SERVER:最初の異なる行に従って行を30分ずつグループ化します(行は異なる曜日と時刻を持つことができます)

  14. 14

    異なる列を持つ2つのテーブルのSQL結合

  15. 15

    SQL-Serverは、3つの列間で異なる行を選択します

  16. 16

    SQLはタイムスタンプで2つの異なるテーブルを結合します

  17. 17

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

  18. 18

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

  19. 19

    SQL同じキーと異なる列を持つ行を選択します

  20. 20

    SQL-2つの異なるテーブルから列データをプルして使用する

  21. 21

    SQLの2つの異なるテーブルから3つの列を要約します

  22. 22

    SQLキーを使用して2つのテーブルを異なる列に結合します

  23. 23

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

  24. 24

    重複を取得し、異なるテーブルSQLの列を更新します

  25. 25

    SQL-異なる値を持つ別のテーブルから列を2回選択する

  26. 26

    他のテーブルの主キーにマップする列をSQLテーブルに作成します

  27. 27

    SQL Server:1つの行と同様の列値を持つ行をグループ化し、対応する行を合計します

  28. 28

    SQLの4つの異なるテーブルの列値を合計します

  29. 29

    SQLの結合クエリを使用して、3番目のテーブルを持つ2つの異なるテーブルから2つの列のカウントを取得します

ホットタグ

アーカイブ