mysql - case when用法

CASE WHEN condition THEN result 

   WHEN condition THEN result 

   .............
   [WHEN ...] 
   [ELSE result] 
END

CASE 子句可以用于任何表达式可以有效存在的地方。 condition 是一个返回boolean 的表达式。 如果结果为真,那么 CASE 表达式的结果就是符合条件的 result。 如果结果为假,那么以相同方式搜寻任何随后的 WHEN 子句。 如果没有 WHEN condition 为真,那么 case 表达式的结果就是在 ELSE 子句里的值。 如果省略了 ELSE 子句而且没有匹配的条件, 结果为 NULL。

 

例子:

  学生表

  

 

  成绩表:

    

 

   查询每个学生的成绩,并展示学生的id,学生姓名,语文,数学,英语

  

SELECT a.id,a.name,
(case WHEN b.kemu = '数学' THEN score ELSE 0 END) as 数学,
(case WHEN b.kemu = '语文' THEN score ELSE 0 END) as 语文,
(case WHEN b.kemu = '英语' THEN score ELSE 0 END) as 英语
FROM student a,grade b
WHERE a.id = b.id

  结果:

    

 

posted @ 2020-03-19 11:39  爱语默  阅读(1236)  评论(0编辑  收藏  举报