MySQL—函数—流程控制函数(基础)

一、引言

    接下来,我们就进入函数的最后一个部分:流程函数。而流程控制函数在我们的日常开发过程是很有用的。

流程控制函数在我们 sql 语句当中,经常用来实现条件的筛选,从而提高语句的一个执行效率。

我们主要介绍以下4个流程控制函数。

注意:

1、第三个和第四个基本上是一致的,都是 case 函数。

2、IF(value,t,f):意思是如果 value 的值为 true ,则返回 t ,否则返回 f

3、IFNULL(value1,value2):先判断第一个参数 value1 是否为空,如果不为空,返回 value1 ,而如果为,返回 value2

4、CASE WHEN [ val1 ] THEN [res1] ... ELSE [ default ] END

case when :当什么时候。

val1 值为 true 的时候,则返回 res1 ,否则返回默认值 default ,语法块结束后面加一个 end

5、CASE [ expr ] WHEN [ val1 ] THEN [ res1 ] ... ELSE [ default ] END:

下面这个也是类似:如果表达式 expr 的值为 val1 ,则返回 res1 ,否则返回默认值,语法块结束用 end

二、操作

接下来回到工具 DataGrip 去一一操作刚刚学习的函数。

1、IF(value,t,f);

如果  value的值为 true 则返回第二个字段的值 t,否则返回 f。

正常来说这个 value 应该是一个条件表达式。

SELECT IF(true,'OK','NO');
SELECT IF(false,'OK','NO');

2、IFNULL(value1,value2);
SELECT IFNULL('value','default');

如果给的字符串是空的字符串,它返回的也是空串,而不是返回默认值。

SELECT IFNULL('','default');

如果为null,就会返回设定的默认值。

SELECT IFNULL(null,'default');

3、CASE WHEN THEN ... ELSE END(case 函数)

emp表 初始数据:

(1)需求:查询emp表的员工姓名和工作地址(如果北京/上海---->一线城市,其他---->二线城市)
SELECT name,(CASE workaddress WHEN '北京'THEN '一线城市' WHEN '上海' THEN '一线城市' ELSE '二线城市' END ) AS '工作地址' FROM emp;

三、案例 

根据需求完成一下SQL语句的编写。

(1)统计班级各个学生的成绩。展示的规则如下:

1、>=85,展示优秀

2、>= 60,展示及格。否则,展示不及格

完成这个案例,对控制函数的操作进行学习与巩固。

(1)首先先创建一个成绩表。

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 * FROM score;

(2)接着完成题目的需求。

最终我们的表中的数据全部查询出来之后,要把分数变成对应的 '优秀'、'及格'或者是'不及格' 去展示出来。

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 score;

这就是这篇博客关于流程控制函数的全部内容。 

  • 22
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MySQL流程控制函数是指可以控制存储过程或函数中执行流程的语句。其中几个常用的流程控制函数包括IF函数。IF函数可以用于条件判断,根据条件返回不同的结果。例如,可以使用IF函数来对查询结果进行处理。在MySQL中,IF函数的语法通常是IF(condition, value1, value2),当condition满足时返回value1,否则返回value2。在使用IF函数时,可以将其类比于三目运算符,即根据条件进行选择返回不同的值。举一个例子,可以使用IF函数来判断eno的值,如果eno与'111'不相等,则返回'yes',否则返回'Yes';如果eno与'112'不相等,则返回2,否则返回3。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [MySQL——流程控制函数](https://blog.csdn.net/qq_41596778/article/details/130282443)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [MySQL函数(一)—流程控制函数](https://blog.csdn.net/qy8189/article/details/129045163)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

岁岁岁平安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值