我有这样的桌子
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
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