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

  结果:

    

猜你喜欢

转载自www.cnblogs.com/aiyumo/p/12523046.html