该表包含一个ID列,valueHeading列和一个value列。我想将value列分为两个新列,分别称为valueHeading1和valueHeading2,具体取决于值具有哪种valueHeading类型。
所以我想加入这个选择: 编辑:完全加入
SELECT ID ,valueHeading ,value as 'valueHeading1' FROM table1 WHERE valueHeading = 'valueHeading1'
使用此选择:
SELECT ID ,value as 'valueHeading2' FROM table1 WHERE valueHeading = 'valueHeading2'
在各自的ID上。我该怎么做呢?
编辑 以说明我要执行的操作:
原始表格:
ID valueHeading value 0 valueHeading1 a 0 valueHeading2 a 1 valueHeading1 ab 1 valueHeading2 NULL 2 valueHeading1 abcd 2 valueHeading2 abc
新表:
ID valueHeading1 valueHeading2 0 a a 1 ab NULL 2 abcd abc
在SQLServer2005 +中可能使用PIVOT
SELECT ID, valueHeading1, valueHeading2 FROM ( SELECT * FROM dbo.test28 WHERE valueHeading IN ('valueHeading1', 'valueHeading2') ) x PIVOT ( MAX(value) FOR valueHeading IN ([valueHeading1], [valueHeading2]) ) p