天天看点

MySQL中CASE表达式的使用前言搜索 CASE 表达式简单 CASE 表达式总结

MySQL 中 CASE 表达式的使用

  • 前言
  • 搜索 CASE 表达式
  • 简单 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
           

原表:

MySQL中CASE表达式的使用前言搜索 CASE 表达式简单 CASE 表达式总结

查询结果:

MySQL中CASE表达式的使用前言搜索 CASE 表达式简单 CASE 表达式总结

例子:

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 
           

查询结果:

MySQL中CASE表达式的使用前言搜索 CASE 表达式简单 CASE 表达式总结

简单 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
           

查询结果:

MySQL中CASE表达式的使用前言搜索 CASE 表达式简单 CASE 表达式总结

总结

如果这篇博客对你有帮助的话,记得给我点个赞,你的鼓励是对我最大的支持!谢谢。◕‿◕。