欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > SQL:MySQL函数:条件函数(Conditional Functions)

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

2025/5/18 11:14:08 来源:https://blog.csdn.net/2402_88047672/article/details/147991939  浏览:    关键词: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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词