我遇到以下问题:我有一行数据,我想使用列名称来旋转它。
Collnames: a b c d
0 NULL 1 0
我希望有以下内容:
Collnames Data
a 0
b Null
c 1
d 0
我为此提出了一个解决方案,但它使用带有游标的动态 SQL,我对此并不感到自豪。有没有更优雅的方法来解决这个问题?
谢谢
最佳答案
这是一个UNPIVOT
,尽管内置运算符不会保留b
,因为值为NULL
,因此您可以这样做.
SELECT ColNames,Data
FROM YourTable
CROSS APPLY ( VALUES ('a', a),
('b', b),
('c', c),
('d', d)) V(ColNames, Data)
关于sql - 使用列名称旋转一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23984273/