公众号(暂未开启)手机端(暂未开启)

SQL CASE WHEN用法

admin 2个月前 (11-26) 阅读数 16 #SQL学习

数据表格

姓名课程成绩
张三语文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     

  

  




版权声明

本文仅代表作者观点。
本文系作者授权发表,未经许可,不得转载。

上一篇:SQL创建视图 下一篇:sql高级功能

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

作者文章
热门
最新文章