2014-11-03 47 views
1

我有一个要求调换只有几行插入附加列在SQL Server 2008移调在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 

如何转置数据?

回答

1

除非我失去了一些东西在这里,这看起来像一个普通的支点查询:

SELECT [Test], [Cmdid], [TN1] AS TN1Values, [TN2] AS TN2Values 
FROM Table1 
PIVOT (
    MAX([Test Value]) FOR [Test Name] IN ([TN1],[TN2]) 
) pvt 

Sample SQL Fiddle

相关问题