MySQL 中 CASE 表达式的使用
前言
在 MySQL 中,CASE 表达式相当于程序设计中的一个条件判断的函数,是 SQL 语言分情况讨论的一种表达形式。
CASE 表达式有两种:一种是类似编程语言的 SWITCH CASE 。 SQL 中称为简单 CASE 表达式;
一种是类似于 IF 语句的根据条件表达式进行判断。 SQL 语言称为搜索 CASE 表达式。
搜索 CASE 表达式
case
when <判断表达式> then <表达式>
when <判断表达式> then <表达式>
…
else <表达式>
end
从上而下根据条件进行判断,满足的话就进入 then 之后的表达式中,不满足的话就进入 else 。else 可省略,省略后默认为 null 值。end 不能省略。
例子:
select e.id,e.name,e.dept_id,
( case when e.sex="1" then "男"
when e.sex="2" then "女"
when e.sex is null then "空"
else "其它" end ) 性别
from t_employee e
原表:
查询结果:
例子:
select e.id,e.name,e.sex,e.dept_id,
( case when e.sex=1 then 1 end ) "男",
( case when e.sex=2 then 0 end ) "女"
from t_employee e
查询结果:
简单 CASE 表达式
case value
when <判断值> then <表达式>
when <判断值> then <表达式>
…
else <表达式>
end
根据 value 与判断值进行比较。满足的话就进入 then 之后的表达式中,不满足的话就进入 else 。else 可省略,省略后默认为 null 值。end 不能省略。
例子:
select e.id,e.name,e.sex,e.dept_id,
( case e.sex
when "1" then "男"
when "2" then "女"
else "其他" end ) 性别
from t_employee e
查询结果:
总结
如果这篇博客对你有帮助的话,记得给我点个赞,你的鼓励是对我最大的支持!谢谢。◕‿◕。