从另一个 table 反透视列

Unpivot columns from another table

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

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

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

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

是否可以像这样从另一个 table 获取我的列列表?

据我所知(如果我错了请纠正我)如果不使用动态查询是不可能使用动态列名的,例如 exec.

看看下面的问题unpivot with dynamic columns plus column names