当前位置: 首页 > news >正文

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;

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

相关文章:

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

一、引言 接下来,我们就进入函数的最后一个部分:流程函数。而流程控制函数在我们的日常开发过程是很有用的。 流程控制函数在我们 sql 语句当中,经常用来实现条件的筛选,从而提高语句的一个执行效率。 我们主要介绍以下4个流程控…...

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷7(私有云)

#需要资源(软件包及镜像)或有问题的,可私聊博主!!! #需要资源(软件包及镜像)或有问题的,可私聊博主!!! #需要资源(软件包…...

Jenkins、GitLab部署项目

1、安装JDK 1.1、下载openJdk11 yum -y install fontconfig java-11-openjdk1.2、查看安装的版本号 java -version1.3、配置环境变量 vim /etc/profile在最底部添加即可 export JAVA_HOME/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64 export PATH$JAVA_HOME/…...

21.Redis之分布式锁

1.什么是分布式锁 在⼀个分布式的系统中, 也会涉及到多个节点访问同⼀个公共资源的情况. 此时就需要通过 锁 来做互斥控制, 避免出现类似于 "线程安全" 的问题. ⽽ java 的 synchronized 或者 C 的 std::mutex, 这样的锁都是只能在当前进程中⽣效, 在分布式的这种多…...

Mysql基础学习:mysql8 JSON字段查询操作

文章目录 一、查询JSON中某个属性值为XXX的数据量1、方式一2、方式二 二、查询的JSON中的value并去除双引号 一、查询JSON中某个属性值为XXX的数据量 1、方式一 select count(*)from table_namewhere JSON_CONTAINS(json-> $.filed1, "xxx")or JSON_CONTAINS(jso…...

搭建基于Django的博客系统数据库迁移从Sqlite3到MySQL(四)

上一篇:搭建基于Django的博客系统增加广告轮播图(三) 下一篇:基于Django的博客系统之用HayStack连接elasticsearch增加搜索功能(五) Sqlite3数据库迁移到MySQL 数据库 迁移原因 Django 的内置数据库 SQL…...

24年护网工具,今年想参加护网的同学要会用

24年护网工具集 吉祥学安全知识星球🔗http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247483727&idx1&sndb05d8c1115a4539716eddd9fde4e5c9&chksmc0e47813f793f105017fb8551c9b996dc7782987e19efb166ab665f44ca6d900210e6c4c0281&scene21…...

解决TrueNas Scale部署immich后人脸识别失败,后台模型下载异常,immich更换支持中文搜索的CLIP大模型

这个问题搞了我几天终于解决了,搜遍网上基本没有详细针对TrueNas Scale部署immich应用后,CLIP模型镜像下载超时导致人脸识别失败,以及更换支持中文识别的CLIP模型的博客。 分析 现象:TrueNas Scale安装immich官方镜像应用后&…...

面试高频问题----2

一、进程、线程、协程有什么区别? 1.进程:进程是操作系统中独立运行的程序实例,每个进程都有自己的内存空间和系统资源;进程之间相互独立,每个进程有自己的内存地址空间,一个进程无法直接访问另一个进程的…...

Nginx的配置文件-详细使用说明

Nginx的配置文件是Nginx服务器运行的核心,它决定了Nginx如何响应和处理各种请求。以下是对Nginx配置文件(通常名为nginx.conf)的详细解析,按照常见的结构和配置项进行分类: 1. 全局块 user:指定Nginx运行的用户和用户组。例如:user nginx;worker_processes:指定工作进…...

YOLOv5改进 | 卷积模块 | 提高网络的灵活性和表征能力的动态卷积【附代码+小白可上手】

💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 轻量级卷积神经网络由于其低计算预算限制了CNNs的深度(卷积层数)和宽度(通道数),…...

23、linux系统文件和日志分析

linux文件系统与日志分析 文件时存储在硬盘上的,硬盘上的最小存储单位是扇区,每个扇区大大小是512字节。 inode:元信息(文件的属性 权限,创建者,创建日期等) block:块&#xff0c…...

安装VS2017后,离线安装Debugging Tools for Windows(QT5.9.2使用MSVC2017 64bit编译器)

1、背景 安装VS2017后,Windows Software Development Kit - Windows 10.0.17763.132的Debugging Tools for Windows默认不会安装,如下图。这时在QT5.9.2无法使用MSVC2017 64bit编译器。 2、在线安装 如果在线安装参考之前的文章: Qt5.9.2初…...

路由策略实验2

对R7,重发布直连路由 对R2,做双向 对R3同样 先不改优先级 查看,知道所有给R3的路由为151,全部为OSPF。 知道了是错误的,先把3,4之间的线路断掉 接着对R3,让优先级全部回到100(displa…...

Linux网络-守护进程版字典翻译服务器

文章目录 前言一、pid_t setsid(void);二、守护进程翻译字典服务器(守护线程版)效果图 前言 根据上章所讲的后台进程组和session会话,我们知道如果可以将一个进程放入一个独立的session,可以一定程度上守护该进程。 一、pid_t se…...

Python 推导式详解:高效简洁的数据处理技巧

推导式是 Python 提供的一种简洁而强大的语法,用于创建列表、集合和字典。它可以让代码更简洁、更易读,同时提高运行效率。 基本语法 列表推导式 基本语法: [expression for item in iterable if condition]示例: # 生成平方…...

车联网安全入门——ICSim模拟器使用

文章目录 车联网安全入门——ISCim模拟器使用介绍主要特点:使用场景: 安装使用捕获can流量candumpcansnifferwiresharkSavvyCAN主要特点:使用场景: 重放can报文cansendSavvyCAN 总结 车联网安全入门——ISCim模拟器使用 &#x1…...

leetcode - 20.有效的括号(LinkedHashMap)

leetcode题目有效的括号,分类是easy,但是博主前前后后提交了几十次才通过,现在记录一下使用Java语言的写法。 题目链接: 20.有效的括号 题目描述: 给定一个只包括 (,),{,},[&…...

多维数组的动态内存分配(malloc和new)

一.区别指针类型 动态分配二维数组的内存不要赋值给行指针,而要赋值给二级指针。 二.分配动态二维数组的方法 1.使用指针数组 然后对指针数组的每一个元素分别malloc一维数组 2.直接使用malloc // 分配了一个指针数组,row为二维数组行数 int **p (i…...

71、评测OrangePi AIpro开发板和USB CAMERAOAK视频解码+推理+编码+推流测试

基本思想:csdn赞助了OrangePi AIpro开发板,花点时间简单和oak深度相机绑定测试一下,反正之前玩过atlas 200 dk A2,应该差不多,引用了之前的usb相机,方便小伙伴测试使用 第一步:系统刷机,参考官方吧,懒得刷机了,参考官方手册即可链接:https://pan.baidu.com/s/1umXM3i…...

SleeperX:macOS系统级电源管理架构解析与深度集成方案

SleeperX:macOS系统级电源管理架构解析与深度集成方案 【免费下载链接】SleeperX MacBook prevent idle/lid sleep! Hackintosh sleep on low battery capacity. 项目地址: https://gitcode.com/gh_mirrors/sl/SleeperX 在macOS生态系统中,电源管…...

软考高项案例分析14:项目配置、变更管理

软考高项案例分析14:项目配置、变更管理 一、配置管理 1. 配置管理活动有哪些 制订配置管理计划 配置项识别 配置项控制 配置状态报告 配置审计 配置管理回顾与改进 2. 基线配置项和非基线配置项 基线配置项:包含所有的设计文档和源程序; 非基线配置项:包括项目的…...

GHelper:华硕笔记本终极性能优化解决方案

GHelper:华硕笔记本终极性能优化解决方案 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Expertbook, RO…...

电子书转有声书终极指南:一键生成多语言AI有声读物

电子书转有声书终极指南:一键生成多语言AI有声读物 【免费下载链接】ebook2audiobook Generate audiobooks from e-books, voice cloning & 1158 languages! 项目地址: https://gitcode.com/GitHub_Trending/eb/ebook2audiobook 将你的电子书库变成随时可…...

MailHog邮件测试工具:开发者的SMTP调试终极解决方案

MailHog邮件测试工具:开发者的SMTP调试终极解决方案 【免费下载链接】MailHog Web and API based SMTP testing 项目地址: https://gitcode.com/gh_mirrors/ma/MailHog 作为现代软件开发过程中不可或缺的一环,邮件功能测试常常让开发者头疼不已。…...

Android屏幕共享技术方案如何实现跨设备实时传输?AndroidScreenShare项目深度解析

Android屏幕共享技术方案如何实现跨设备实时传输?AndroidScreenShare项目深度解析 【免费下载链接】AndroidScreenShare Android 屏幕共享, 共享你的屏幕和音频到另一台手机 Share your screen and voice to other phone 项目地址: https://gitcode.com/gh_mirro…...

如何让老旧Windows系统重新获得安全更新:Legacy Update完整解决方案

如何让老旧Windows系统重新获得安全更新:Legacy Update完整解决方案 【免费下载链接】LegacyUpdate Get back online, activate, and install updates on your legacy Windows PC 项目地址: https://gitcode.com/gh_mirrors/le/LegacyUpdate 还在为Windows X…...

ElevenLabs芬兰语TTS深度评测:9大真实场景实测,准确率92.7% vs 传统引擎差距在哪?

更多请点击: https://intelliparadigm.com 第一章:ElevenLabs芬兰语TTS技术概览与评测背景 ElevenLabs 作为当前语音合成领域的领先平台,其多语言支持能力持续扩展,芬兰语(Finnish)于2023年第四季度正式纳…...

BilibiliDown终极指南:5分钟掌握免费跨平台B站视频下载技巧

BilibiliDown终极指南:5分钟掌握免费跨平台B站视频下载技巧 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirr…...

ARM BRBE技术:硬件级控制流分析与优化

1. ARM分支记录缓冲区扩展(BRBE)技术概述在现代处理器架构中,控制流信息的捕获对于性能分析和代码优化至关重要。ARM分支记录缓冲区扩展(Branch Record Buffer Extension, BRBE)是ARMv8/v9架构中引入的一项硬件特性,它通过专用硬件机制记录程序执行过程中…...