流程函数的作用
可以在SQL语句中实现条件筛选, 提高语句的效率.
if(value , t, f)
如果value为true, 返回t, 否则返回f4
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默认值
例子
查询emp表的员工姓名和工作地址, 如果是北京和上海, 就是一线城市, 否则就是二线城市
select name , case workaddr when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end as '工作地址' from emp;
统计班级各个学员的成绩, 展示规则如下:
如果>=85, 表示优秀
如果>=65, 表示及格
否则表示不及格
select
name,
(case when math >= 85 then ‘优秀’ when math >= 65 then ‘及格’ else ‘不及格’ end) ‘数学’,
(case when English>= 85 then ‘优秀’ when English >= 65 then ‘及格’ else ‘不及格’ end) ‘英语’,
(case when chinese>= 85 then ‘优秀’ when chinese >= 65 then ‘及格’ else ‘不及格’ end) ‘语文’
from score;