我需要在SQL Server 2008
中将少数行转换为其他列源表数据
Test Cmdid Test Name Test Value
TC1 1 TN1 A
TC1 2 TN1 B
TC1 3 TN1 C
TC1 4 TN1 D
TC1 1 TN2 X
TC1 2 TN2 Y
TC1 3 TN2 Z
TC1 4 TN2 M
此数据应转换如下
Test Cmdid TN1Values TN2Values
TC1 1 A X
TC1 2 B Y
TC1 3 C Z
TC1 4 D M
如何转置数据?
答案 0 :(得分:1)
除非我在这里遗漏了一些内容,否则这看起来像是一个普通的数据透视查询:
SELECT [Test], [Cmdid], [TN1] AS TN1Values, [TN2] AS TN2Values
FROM Table1
PIVOT (
MAX([Test Value]) FOR [Test Name] IN ([TN1],[TN2])
) pvt