sql – 单行中的多个列值
发布时间:2020-12-12 16:20:34 所属栏目:MsSql教程 来源:网络整理
导读:我有这样的表 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,MA
我有这样的表
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 > SQLFiddle Demo 使用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 > SQLFiddle Demo (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |