Skip to content

流程函数

流程函数也是很常用的一类函数,可以在 SQL 语句中实现条件筛选,从而提高语句的效率

函数功能
IF(value , t , f)如果 value 为 true,则返回 t,否则返回 f
IFNULL(value1 , value2)如果 value1 不为空,返回 value1,否则返回 value2
CASE WHEN [ val1 ] THEN [res1] ...ELSE [ default ] END如果 val1 为 true,返回 res1,... 否则返回 default 默认值
CASE [ expr ] WHEN [ val1 ] THEN [res1] ... ELSE [ default ] END如果 expr 的值等于 val1,返回 res1,... 否则返回 default 默认值

演示如下

IF

bash
select if(false, 'Ok', 'Error');

ifnull

bash
select ifnull('Ok','Default');
select ifnull('','Default');
select ifnull(null,'Default');

case when then else end

需求: 查询 emp 表的员工姓名和工作地址 (北京/上海 ----> 一线城市 , 其他 ----> 二线城市)

bash
select
name,
( case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else
'二线城市' end ) as '工作地址'
from emp