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

22.流程控制函数

以下是 MySQL 中常用的条件控制函数,用于根据不同条件返回对应结果,实现逻辑判断与分支处理,总结如下:

1. IF 函数

IF(expr1, expr2, expr3)

  • 逻辑:先判断 expr1 是否为真(非 0、非 NULL 等布尔真情况 )。
    • expr1TRUE,返回 expr2
    • expr1FALSE,返回 expr3
  • 场景:简单二分支判断,比如根据成绩是否及格返回“合格”或“不合格”。

2. IFNULL 函数

IFNULL(expr1, expr2)

  • 逻辑:专门处理 NULL 值判断。
    • expr1 不为 NULL,直接返回 expr1
    • expr1NULL,返回 expr2
  • 场景:数据补全,比如查询用户手机号,若为 NULL 则返回“未填写” 。

3. CASE WHEN 语句(多重分支)

SELECT CASE WHEN expr1 THEN expr2 WHEN expr3 THEN expr4 ELSE expr5 
END;
  • 逻辑:依次判断条件分支。
    • 先检查 expr1,为 TRUE 则返回 expr2
    • expr1 不满足,检查 expr3,为 TRUE 则返回 expr4
    • 所有 WHEN 条件都不满足时,返回 expr5ELSE 可省略,省略则返回 NULL )。
  • 场景:复杂多分支,比如根据分数区间返回“优秀”“良好”“合格”“不合格”等评级 。

这些函数让 SQL 查询能灵活处理条件逻辑,减少依赖应用层判断,直接在数据库层实现数据结果的动态处理

4.示例

以前创建过的一张学生表,利用流程控制函数来查询学生的成绩,来提升显示的效果。

(1)if函数的使用

SELECT `num`, `name`, IF(`chinese` + `math` + `english` >= 250, '优秀', '捞') AS `学习情况`
FROM `students`;

(2)case when语句的使用

SELECT `num`, `name`, CASE WHEN (`chinese` + `math` + `english`) >= 270 THEN '优秀'WHEN (`chinese` + `math` + `english`) >= 200 THEN '合格'ELSE '捞' END AS `学习情况`
FROM `students`;

(3)if 和 ifnull的对比

SELECT `num`, `name`, IF(`chinese`is NULL or `math` is NULL or `english`is NULL , '成绩不全', '成绩录入完成') AS `成绩录入情况`
FROM `students`;

SELECT `num`, `name`, IFNULL(`chinese` + `math` + `english` , '成绩不全') AS `成绩录入情况`
FROM `students`;

相关文章:

  • python校园服务交流系统
  • VUE3(一)、基础语法
  • iOS开发中的安全实践:如何通过Ipa混淆与加固确保应用安全
  • 特种设备安全管理:使用单位的 “责任清单”
  • 贝叶斯定理:AI大模型的概率统计基石
  • 青少年编程与数学 01-011 系统软件简介 27 备份恢复工具
  • 新零售系统商城开发全解析
  • 爱普特APT32F1104C8T6单片机 高抗干扰+硬件加密双保障
  • TensorFlow深度学习实战——Transformer变体模型
  • C++11中alignof和alignas的入门到精通指南
  • C++ 标准模板库各个容器的应用场景分析
  • 查询pgsql表字段 包含 name 的表
  • 基于Rust的Polars学习笔记
  • C# .net core添加单元测试项目,依赖注入接口测试
  • QtitanRibbon为能源工业打造高效应用体验:实现系统中的现代化UI
  • java设计模式[4]之设计型模式
  • qt 实现socket 通讯 demo
  • 一篇文章快速学会HTML
  • 用Go写一个飞书机器人定时发送消息的程序
  • 《企业司法风险监控系统架构设计:从数据采集到T+1实时预警的完整解决方案》
  • 网站设计可以在手机上做吗/图片外链生成工具在线
  • oa办公系统开发/排名优化系统
  • 哪里的郑州网站建设/可以直接打开网站的网页
  • 浙江网站备案/游戏推广代理app
  • 怎么做跳转网站首页/seo外包公司需要什么
  • 江山做网站/关键词百度云