MYSQL一一函数一一流程函数

发布时间:2023年12月26日

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

文章来源:https://blog.csdn.net/m0_74197121/article/details/135210699
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。