我有这样的表
ID Status 1 5 1 6 1 7 2 5 2 6 2 7
我需要如下结果
ID col1 col2 col3 1 5 6 7 2 5 6 7
请帮帮我
解决方法
SELECT ID,MAX(CASE WHEN status = 5 THEN Status ELSE NULL END) col1,MAX(CASE WHEN status = 6 THEN Status ELSE NULL END) col2,MAX(CASE WHEN status = 7 THEN Status ELSE NULL END) col3 FROM tableNAME GROUP BY ID
使用PIVOT
SELECT * FROM ( SELECT ID,Status,CASE Status WHEN 5 THEN 'Col1' WHEN 6 THEN 'Col2' WHEN 7 THEN 'Col3' END Stat FROM tableName ) src PIVOT ( MAX(Status) FOR Stat IN ([Col1],[Col2],[Col3]) ) pivotTbl