MYSQL一一函数一一流程函数

咱今天讲的是MySQL函数中的流程函数,会有3小题和一个综合案例帮助大家理解

流程函数是很常用的一类函数,可以在SQL语句中实现条件筛选,从而提高语句的效率

MYSQL一一函数一一流程函数_第1张图片

小题:

①if语句:

        select if(flash,'ok','error');        //如果第一空是true的话返回ok,如果第一空是flash的话返回error

MYSQL一一函数一一流程函数_第2张图片

②ifnull语句:

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

        select ifnull(null,'default');        //返回default;

MYSQL一一函数一一流程函数_第3张图片

MYSQL一一函数一一流程函数_第4张图片

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

        select  

                name,

                place

        from emp;

MYSQL一一函数一一流程函数_第5张图片

select

        name,

        case place when '北京' then ‘一线城市’ when '上海' then '一线城市' else '二线城市' end

from emp;

MYSQL一一函数一一流程函数_第6张图片

综合案例:

统计班级学员的成绩,>=85的返回优秀,>=60的返回及格,其他的返回不及格

①先查询表格

select 
    id,
    name,
    math,
    english,
    chinese 
from student;

MYSQL一一函数一一流程函数_第7张图片

②修改

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;

MYSQL一一函数一一流程函数_第8张图片

//这里()as '数学'  是给括号里的起别名

//因为这里要返回的数是在一个范围里的所以要用 case  when 

你可能感兴趣的:(mysql,数据库,sql)