首页 > 解决方案 > 将一个表中的列值连接到另一个表的新列中的行

问题描述

我正在尝试在 SQL Server 2008 中编写一个 SQL 查询,它将单个查询中的列值匹配到表上的新列中,其中列标题存储为行值。

我有两个疑问:

钥匙 价值
COL01 25
COL02 71
COL03 13

表 1 的 KEY 列下列出的相同行值是表 2 的列名。

COL01 COL02 COL03
XX YY Z Z

期望的结果:

钥匙 价值 NEW_COL
COL01 25 XX
COL02 71 YY
COL03 13 Z Z

标签: sqlsql-serversql-server-2008

解决方案


嗯。. . 我建议取消旋转并加入:

select t1.*, t2.val
from table2 t2 cross join
     (values (t2.col01, 'col01'), (t2.col02, 'col02'), (t2.col03, 'col03')
     ) v(val, which) join
     table1 t1
     on t2.which = t1.key;

推荐阅读