Mysql常用函数的汇总,可看下面文章

https://www.cnblogs.com/poloyy/p/12890763.html

 

case 的作用

  • if 的高级版,类似Java 里面的  switch ... case 
  • 通过条件表达式匹配 case 对应的值,然后执行对应的操作

 

简单的 case 的语法格式

只有一个条件表达式

CASE  <表达式>
   WHEN <值1> THEN <操作>
   WHEN <值2> THEN <操作>
   ...
   ELSE <操作>
END;

语法格式说明

  • 将 <表达式> 的值 逐一和 每个 when 跟的 <> 进行比较
  • 如果跟某个<值>想等,则执行它后面的 <操作> ,如果所有 when 的值都不匹配,则执行 else 的操作
  • 如果 when 的值都不匹配,且没写 else,则会报错

 

先看看emp表有什么数据

 

简单 case 的栗子:

根据部门id进行判断部门名称

SELECT name,dept_id,
CASE
        dept_id 
        WHEN 0 THEN
        "实习生" 
        WHEN 1 THEN
        "销售部" 
        WHEN 2 THEN
        "信息部" 
        WHEN 2 THEN
        "财务部" ELSE "没有部门" 
    END AS "部门" 
FROM
    emp;

 

可搜索 case 的语法格式

CASE
    WHEN <条件1> THEN <操作>
    WHEN <条件2> THEN <操作>
    ...
    ELSE <操作>
END;

语法格式说明

  • 每个 <条件> 都是独立的,可以用 and 来连接多个查询条件
  • 不同 <条件> 是互不关联且互不影响的

 

可搜索 case 的栗子

每个条件都是不一样的,可以任意指定查询条件,可简单可复杂

select name,dept_id,
case 
when dept_id=1 and leader != 0 and is_enable !=0 then "销售部在职员工"
when dept_id =2 and leader = 0 then "信息部大佬"
when leader = 8 then "任我行大佬"
else "啥都不是"
end
from emp;

 

重点

记得结尾要加 end !!!!

记得结尾要加 end !!!!

记得结尾要加 end !!!!