当前位置: 首页 > 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

相关文章:

  • Day 21 训练
  • Spring+LangChain4j小智医疗项目
  • 如何让open-mpi在不同版本的OS上运行
  • java方法的练习题
  • Python内存管理:赋值、浅拷贝与深拷贝解析
  • 数智管理学(九)
  • 【匹配】Smith-Waterman
  • 【高频面试题】LRU缓存
  • JavaScript - 运算符之逗号操作符与逗号分隔符(逗号操作符概述、逗号操作符用法、逗号分隔符、逗号分隔符用法)
  • Miniconda介绍介绍和使用
  • Unix Bourne Shell
  • 已解决(亲测有效!):安装部署Docker Deskpot之后启动出现Docker Engine Stopped!
  • ollama 重命名模型
  • Vue.js---避免无限递归循环 调度执行
  • Elasticsearch 常用语法手册
  • [吾爱出品] 中医问诊辅助记录软件
  • ES常识8:ES8.X如何实现热词统计
  • CPU cache基本原理
  • 基于javaweb的JSP+Servlet家政服务系统设计与实现(源码+文档+部署讲解)
  • 2900. 最长相邻不相等子序列 I
  • 北方将现今年首场大范围高温天气,山西河南山东陕西局地可超40℃
  • 特朗普再提“接管”加沙,要将其变为“自由区”
  • 上海制造佳品汇大阪站即将启幕,泡泡玛特领潮出海
  • 深圳拟出让3宗居住用地,共计用地面积6.77公顷
  • 商务部就开展加强战略矿产出口全链条管控工作应询答记者问
  • 足球少年郎7月试锋芒,明日之星冠军杯构建顶级青少年赛事