case when的语法格式:
CASE
WHEN 条件 THEN 满足条件后的结果
WHEN 条件 THEN 满足条件后的结果
ELSE 都不满足上面两个条件后出现的结果
END -- 标明结尾。
case when有两种写法,
第一种:
CASE
WHEN id = 1 THEN '男'
WHEN id = 2 THEN '女'
WHEN id > 5 THEN '呵呵'
WHEN name = '淘宝网店3' THEN '呵呵1'
ELSE '其他'
END
第二种:
CASE id
WHEN 1 THEN '男'
WHEN 2 THEN '女'
WHEN 5 THEN '呵呵'
ELSE '其他'
END
第二种写法,就是when里面的条件,都是”id = “什么的,而不能向第一种写法一样,可以自由定义条件,比如,可以定义 id = 1,也可以定义 id > 5,还可以定义name = ‘淘宝网店3’ ,等等。
第一种写法的实例:
SELECT
id,
`name`,
(case when id = 1 then '呵呵' when id = 2 then '哈哈' WHEN name = '淘宝网店3' THEN '呵呵1' else '其他' end) t
FROM
gl_dept
结果:
第二种的实例:
SELECT
id,
`name`,
(case id when 1 then '呵呵' when 2 then '哈哈' else '其他' end) t
FROM
gl_dept
结果: