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