🌈个人主页: Aileen_0v0
🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法
💫个人格言:“没有罗马,那就自己创造罗马~”
流程函数:可在SQL语句中实现条件筛选,提高语句效率。
函数 | 功能 |
---|---|
if(value,t,f) | 如果value为true,则返回t,否则返回f |
ifnull(value1,value2) | 如果value1不为空,则返回value1,否则返回value2 |
case when [ val1 ] then [ res1 ] ... else [ default ] end | 如果val1为true,返回 |
case [ expr ] when [ val1 ] then [ res1 ] ... else [ default ] end | 如果expr的值等于val1,返回res1,… 否则返回default默认值 |
-- 流程控制函数 -- if select if(false,'Aileen','Betty');
-- ifnull select ifnull('ok','default');
select ifnull('','default');
select ifnull(null, 'default');
-- case when then else end -- 需求: 查询emp 表的员工姓名和工作地址(北京/上海 ----> 一线城市 , 其他 ----> 二线城市) -- 首先将员工姓名和工作地址先筛选出来 select name,WORKADDRESS from emp; -- 再根据需求进行条件筛选 select name, case WORKADDRESS when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end from emp;
将分数转换为等级
-- 案例: 统计班级各学员的成绩,展示的规则如下: -- >= 85, 展示优秀 -- >= 60, 展示及格 -- 否则, 展示不及格 create table score( id int comment 'ID', name varchar(20) comment '姓名', math int comment '数学', english int comment '英语', chinese int comment '语文' ) comment '学员成绩表'; insert into score(id, name, math, english, chinese) values (1,'Tom',67,88,95),(2,'Rose',23,66,90),(3,'Jack',56,98,76); select id, name, (case when chinese >= 85 then '优秀' when chinese >= 60 then '及格' else '不及格' end ) '语文', (case when english >= 85 then '优秀' when english >= 60 then '及格' else '不及格' end ) '英语', (case when math >= 85 then '优秀' when math >= 60 then '及格' else '不及格' end ) '数学' from score;
计算我加入CSDN的时间
select datediff('2024-2-12','2023-3-14');