流程函数
流程函数也是很常用的一类函数,可以在 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