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

SQL:MySQL函数:条件函数(Conditional Functions)

目录

什么是条件函数?

常用 MySQL 条件函数总览表

1️⃣ IF() – 条件判断函数(If Statement)

2️⃣ IFNULL() – 空值判断与替代函数(If Null)

3️⃣ NULLIF() – 相等返回 NULL(Null If Equal)

4️⃣ CASE – 多条件判断结构(Case When)

常见使用场景


什么是条件函数?

条件函数是指在 SQL 查询过程中,根据某个条件的真假来决定返回哪一个值的函数。它们常用于控制逻辑流程、数据筛选、分类处理等场景。

常用 MySQL 条件函数总览表

函数名称(英文)中文含义语法格式含义解释示例
IF()条件判断函数IF(condition, true_value, false_value)如果条件为真,返回 true_value,否则返回 false_valueIF(score>=60, '及格', '不及格')
IFNULL()空值替换函数IFNULL(expr1, expr2)如果 expr1 不为 NULL,返回 expr1,否则返回 expr2IFNULL(bonus, 0)
NULLIF()相等转 NULL 函数NULLIF(expr1, expr2)如果 expr1expr2 相等,返回 NULL,否则返回 expr1NULLIF(grade, 'F')
CASE多条件分支判断CASE WHEN condition THEN result ... ELSE result END按照多个条件分支进行判断CASE WHEN salary>10000 THEN '高薪' WHEN salary>5000 THEN '中等' ELSE '低薪' END

1️⃣ IF() – 条件判断函数(If Statement)

  • 英文含义:IF → if statement

  • 中文解释:根据一个条件是否为真来返回不同的结果(类似于 if-else)。

  • 语法:

IF(condition, value_if_true, value_if_false)

 示例:

SELECT name, IF(score >= 60, '合格', '不合格') AS result FROM students;

2️⃣ IFNULL() – 空值判断与替代函数(If Null)

  • 英文含义:IFNULL → if null

  • 中文解释:判断某个值是否为 NULL,如果是,则返回指定默认值。

  • 语法:

IFNULL(expression, replacement_value)

 示例:

SELECT name, IFNULL(score, 0) AS final_score FROM students;

3️⃣ NULLIF() – 相等返回 NULL(Null If Equal)

  • 英文含义:NULLIF → null if equal

  • 中文解释:如果两个表达式相等,则返回 NULL,否则返回第一个表达式。常用于防止除以 0 的错误。

  • 语法:

NULLIF(expr1, expr2)

 示例:

SELECT score / NULLIF(attempts, 0) FROM exam_results;

4️⃣ CASE – 多条件判断结构(Case When)

  • 英文含义:CASE → conditional switch

  • 中文解释:类似于其他语言中的 switch-case,实现多条件判断与分类。

  • 语法:

CASE WHEN condition1 THEN result1WHEN condition2 THEN result2...ELSE resultN
END

 示例:

SELECT name,CASE WHEN score >= 90 THEN '优秀'WHEN score >= 60 THEN '及格'ELSE '不及格'END AS level
FROM students;

常见使用场景

场景使用函数示例语句
判断通过与否IF()IF(score >= 60, '通过', '未通过')
缺失值替代IFNULL()IFNULL(phone, '无号码')
防止除以 0NULLIF()sales / NULLIF(quantity, 0)
多等级分类CASECASE WHEN age < 18 THEN '未成年' ELSE '成年' END

http://www.xdnf.cn/news/461989.html

相关文章:

  • OpenCV人脸识别EigenFace算法、案例解析
  • [学习]RTKLib详解:tle.c(系列终章)
  • 一般的析因设计
  • 探索Turn.js:打造惊艳的3D翻页效果
  • 2025年,如何制作并部署一个完整的个人博客网站
  • 让三个线程(t1、t2、t3)按顺序依次打印 A、B、C
  • 网站漏洞存在哪些危害,该如何做好预防?
  • Java中的深拷贝与浅拷贝
  • Blender 入门教程(三):骨骼绑定
  • 三目云台20倍变焦智能监控技术
  • 基于Arduino的迷你掌上游戏机
  • TCP(传输控制协议)建立连接的过程
  • 黑马k8s(七)
  • 用户安全架构设计
  • Unity碰撞检测:射线与胶囊体投射/Layer(层)、LayerMask(遮罩层)
  • 分布式AI推理的成功之道
  • How to configure Linux mint desktop
  • SpringBoot核心优势与适用场景分析
  • 【SPIN】PROMELA语言编程入门基础语法(SPIN学习系列--1)
  • FramePack - 开源 AI 视频生成工具
  • 基于Vue3制作一个可以拖拽排列的卡片,支持nuxt3
  • LeRobot 框架的核心架构概念和组件(下)
  • JAVA:ResponseBodyEmitter 实现异步流式推送的技术指南
  • 兼顾长、短视频任务的无人机具身理解!AirVista-II:面向动态场景语义理解的无人机具身智能体系统
  • 大数据架构选型全景指南:核心架构对比与实战案例 解析
  • 交叉编译JsonCpp
  • go-zero(十八)结合Elasticsearch实现高效数据检索
  • Open CASCADE学习|容器及其使用
  • 2023CCPC河南省赛暨河南邀请赛个人补题ABEFGHK
  • C++篇——多态