咱今天讲的是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