SQL CASE WHEN用法
数据表格
姓名 | 课程 | 成绩 |
张三 | 语文 | 98 |
张三 | 数学 | 97 |
李四 | 语文 | 88 |
李四 | 数学 | 87 |
先用case when 直接处理
SELECT 姓名 ,case when 课程='语文' then 成绩 end as N'语文' ,case when 课程='数学' then 成绩 end as N'数学' from CaseWhen
得到结果:
姓名 语文 数学
张三 98 NULL
张三 NULL 99
李四 87 NULL
李四 NULL 88
王五 92 NULL
王五 NULL 97
--用max去掉null SELECT 姓名 ,max(case when 课程='语文' then 成绩 end )as N'语文' ,max(case when 课程='数学' then 成绩 end )as N'数学' from CaseWhen group by 姓名
得到结果:
姓名 语文 数学
李四 87 88
王五 92 97
张三 98 99
--用sum去掉null SELECT 姓名, SUM(CASE WHEN 课程 = '语文' THEN TRY_CAST(成绩 AS DECIMAL(10, 2)) END) AS N'语文', SUM(CASE WHEN 课程 = '数学' THEN TRY_CAST(成绩 AS DECIMAL(10, 2)) END) AS N'数学' FROM CaseWhen GROUP BY 姓名;
得到结果:
姓名 语文 数学
李四 87 88
王五 92 97
张三 98 99
版权声明
本文仅代表作者观点。
本文系作者授权发表,未经许可,不得转载。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。