Som*_*har 1 sql sql-server sql-server-2008
我有这样的桌子
ID Status
1 5
1 6
1 7
2 5
2 6
2 7
Run Code Online (Sandbox Code Playgroud)
我需要如下结果
ID col1 col2 col3
1 5 6 7
2 5 6 7
Run Code Online (Sandbox Code Playgroud)
请帮我
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
Run Code Online (Sandbox Code Playgroud)
使用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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3637 次 |
| 最近记录: |