SQL之流程控制函数
2023-09-11 14:19:18 时间
简介
他们都用在
SELECT
后面
假设我们有这样一张表
IF
语法
IF(expr1,expr2,expr3)
expr1为判断条件,符合则返回expr2,否则expr3
例子
我们有一个这样的要求,查询表中的人员,大于20的打印✔,小于等于20的打印✖
SELECT `name`,IF(age>20,"✔","✖") FROM student;
执行语句,我们会得到
也就是说select
后面的IF
也相当于一列,满足和不满足的都有相应的打印
CASE
一般
case
结合when
,else
,end
使用一起使用,其中else
可以省略,end
不可以省略,他也相当于一列
他有两种写法
写法一
CASE case_value
WHEN when_value THEN statement_list
WHEN ...
ELSE statement_list
END;
写法二
CASE
WHEN expr1 THEN statement_list
WHEN ...
ELSE statement_list
END;
例子
固定值(第一种写法)
SELECT `name`,
CASE `age`
WHEN "30" THEN "age是30"
ELSE "age不是30"
END AS "描述"
FROM student LIMIT 10;
表达式(第二种写法)
这里其实就是将字段写在
WHEN
的后面
SELECT `name`,age,
CASE
WHEN age > 20 THEN "age大于20"
ELSE "age小于20"
END AS "描述"
FROM student LIMIT 10;
分组
根据
sql
的执行顺序,点击,他会先进行分组,对于分组后的数据进行select后语句的执行
SELECT age,GROUP_CONCAT(`name`) AS 姓名,SUM(IF(sex="male",1,2))
FROM student
GROUP BY age;
执行结果
执行顺序
根据sql的执行顺序,执行的流程大致如下
- 通过age分成了三组
- 每一组的内容,我们可以通过
GROUP_CONCAT
函数来间接进行查看 - 对于聚合函数的执行
- 他相当于一个遍历
- 遍历每组的内容,把它放到一个列表(数组)中
- 遍历完后,对于数组中的数据进行计算,就是这一列的内容
IFNULL
他与if的使用差不多,这里就不做过多介绍了
IFNULL(expr1,expr2)
expr1
为判断的值expr2
为当判断的值为空的时候,返回expr2
相关文章
- Shell入门教程:流程控制(6)while 循环
- Shell入门教程:流程控制(7)break和continue
- 携程SQL上线流程优化,如何从源头扼杀慢查询?
- 第5章流程控制语句
- Go语言基础之流程控制
- js-ECMAScript-3:运算符和流程控制
- 【COCOA(MAC) APPLICATION 开发系列之四】动作编辑器(COCOS2DX)制作流程详解及附上响应鼠标滚轴事件、反转坐标系、导入/创建资源目录等知识点代码!
- Dart基础-控制流程与异常处理
- 第四章 Python运算符和流程控制
- {Repeater控件} Repeater控件的用法流程及实例
- 【网址收藏】全网最详细的 K8s Service 不能访问排查流程
- 【BSP视频教程】STM32H7视频教程第4期:从启动到运行过程全解析,电源域,复位,时钟,软硬件启动流程到堆栈,map和htm文件分析(2022-01-26)
- 无人机DLG生产作业流程
- [Shell] 条件判断与流程控制:if, case, for, while, until
- Atitit QL查询语言总结 目录 1. QL = Query Language, 是查询语言的简称1 2. 具体实现1 2.1. Apcl 流程控制语言1 2.2. 脚本流程控制2 2.
- 上课流程法-如何上好第一节课(1) 目录 1. 目录1 1.1. 销售自己1 1.2. 销售课程1 1.3. 学习方法1 1.4. 制定规章2 2. 销售自己-自我介绍2 2.1.
- Atitit.月度计划日程表 每月流程表
- Database之SQL:SQL语句操作三类(数据定义语句DDL/数据操作语句DML/数据控制语句DCL/其他基本语句、流程控制语句、批处理语句)概念及其代码实现案例之详细攻略
- ML之分类预测:以六类机器学习算法(kNN、逻辑回归、SVM、决策树、随机森林、提升树、神经网络)对糖尿病数据集(8→1)实现二分类模型评估案例来理解和认知机器学习分类预测的模板流程
- JavaScript基础语法(流程控制语句)
- ios直播开发基础,推流协议及流程
- 真香啊,一文讲透金融风控建模全流程(Python)
- PHP 零基础入门笔记(6):PHP 流程控制
- 【Android 逆向】ART 脱壳 ( DexClassLoader 脱壳 | oat_file_assistant.cc 中涉及的 oat 文件生成流程 )
- Java 语句和流程控制
- Android深入源代码分析理解Aidl总体调用流程(雷惊风)
- 22.第六章 Shell脚本编程基础入门 -- bash配置文件、流程控制(五)
- Go语言自学系列 | golang流程控制关键字break
- Java基础(13)-流程控制之循环结构
- ambari发布新服务(HDP自带的服务)流程简介
- Vue 页面渲染的流程
- DynaSLAM-9 DynaSLAM中双目运行流程(Ⅲ):图像处理