咱今天讲的是MySQL函数中的流程函数,会有3小题和一个综合案例帮助大家理解
流程函数是很常用的一类函数,可以在SQL语句中实现条件筛选,从而提高语句的效率

小题:
①if语句:
select if(flash,'ok','error'); //如果第一空是true的话返回ok,如果第一空是flash的话返回error

②ifnull语句:
select ifnull('ok','default'); //如果第一空不为空的话返回第一空的值,如果为空的话返回第二空的值
select ifnull(null,'default'); //返回default;


③查询emp表的员工姓名和员工地址(如果员工地址是北京/上海,则返回一线城市)(如果是其他地址则返回二线城市)
select
name,
place
from emp;

select
name,
case place when '北京' then ‘一线城市’ when '上海' then '一线城市' else '二线城市' end
from emp;

综合案例:
统计班级学员的成绩,>=85的返回优秀,>=60的返回及格,其他的返回不及格
①先查询表格
select 
     id,
     name,
     math,
     english,
     chinese 
 from student;

②修改
SELECT 
     id,
     NAME,
     (CASE WHEN math>=85 THEN '优秀' WHEN math>=60 THEN '及格' ELSE '不及格' END) AS '数学',
     (CASE WHEN english>=85 THEN '优秀' WHEN english>=60 THEN '及格' ELSE '不及格' END) AS '英语',
     (CASE WHEN chinese>=85 THEN '优秀' WHEN chinese>=60 THEN '及格' ELSE '不及格' END) AS '语文'
 FROM student;

//这里()as '数学' 是给括号里的起别名
//因为这里要返回的数是在一个范围里的所以要用 case when