从另一个表中取消透视列

时间:2015-01-19 11:54:26

标签: sql tsql pivot unpivot

我使用Unpivot从我试图操作的表中获取数据。我使用此查询将我的列重新排列为行;

SELECT        Id, ownername, ownervalue
FROM            Contacts UNPIVOT (ownervalue FOR ownername IN (column1, column2, column3)) unpiv;

这很有效。但是,我更愿意从另一个表中获取我的列名,而不是在查询中对它们进行硬编码。理想情况下我想这样,但它不起作用;

SELECT        Id, ownername, ownervalue
FROM            Contacts UNPIVOT (ownervalue FOR ownername IN (SELECT * FROM ColumnsTable)) unpiv;

是否可以从另一个表中获取我的列表列表?

1 个答案:

答案 0 :(得分:0)

据我所知(如果我错了请纠正我),如果不使用动态查询,则无法使用动态列名,动态查询例如exec执行。

查看以下问题unpivot with dynamic columns plus column names