技术文摘
MySQL 中 CASE WHEN 的使用方法
2025-01-14 18:48:12 小编
MySQL 中 CASE WHEN 的使用方法
在 MySQL 数据库的操作中,CASE WHEN 语句是一个功能强大且灵活的工具,它允许我们根据条件进行逻辑判断,并返回不同的结果。掌握 CASE WHEN 的使用方法,能够极大地提升数据处理和查询的效率。
CASE WHEN 语句的基本语法结构有两种形式。一种是简单 CASE 表达式:CASE 列名 WHEN 值1 THEN 结果1 WHEN 值2 THEN 结果2 … ELSE 结果 END;另一种是搜索 CASE 表达式:CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2 … ELSE 结果 END。
简单 CASE 表达式适用于根据某一列的不同固定值返回不同结果的场景。例如,在一个学生成绩表中,有“score”列存储成绩。我们想要根据成绩划分等级,60 分以下为“不及格”,60 到 79 分为“及格”,80 到 89 分为“良好”,90 分及以上为“优秀”。可以使用如下查询:
SELECT score,
CASE
WHEN score < 60 THEN '不及格'
WHEN score >= 60 AND score < 80 THEN '及格'
WHEN score >= 80 AND score < 90 THEN '良好'
ELSE '优秀'
END AS grade
FROM student_scores;
搜索 CASE 表达式则更灵活,能根据不同的条件进行判断。比如,我们要统计一个订单表中不同金额区间的订单数量。订单金额小于 100 元的为小额订单,100 到 500 元为中额订单,大于 500 元为大额订单。查询语句如下:
SELECT
SUM(CASE WHEN amount < 100 THEN 1 ELSE 0 END) AS small_order_count,
SUM(CASE WHEN amount >= 100 AND amount < 500 THEN 1 ELSE 0 END) AS medium_order_count,
SUM(CASE WHEN amount >= 500 THEN 1 ELSE 0 END) AS large_order_count
FROM orders;
在实际应用中,CASE WHEN 还可以用于更新数据。例如,要将员工表中职位为“developer”的员工薪资提高 10%,可以这样操作:
UPDATE employees
SET salary = CASE
WHEN position = 'developer' THEN salary * 1.1
ELSE salary
END;
MySQL 中的 CASE WHEN 语句为我们提供了强大的条件判断能力,无论是数据查询、统计分析还是数据更新,都能发挥重要作用。熟练掌握它的使用方法,能够帮助我们更高效地处理数据库中的数据,优化业务逻辑。
- 深入解析 Java CompletableFuture
- APICloud 首席执行官刘鑫:移动应用为人工智能落地展示的直接载体
- 在 Java 应用中查找和修复内存泄漏的方法
- 程序员查找复杂代码中 BUG 的 5 种方法,你用过几种?
- 代码铸就传奇,深度剖析中国开发者现况
- 5 分钟轻松上手,Python 开发 SQLite 数据库并附代码,适合初学者
- 饿了么 API 架构的高稳定、高性能、高可用及高容错实践
- 九项传统编程语言招聘岗位需求依旧坚挺
- 爱奇艺 CTO 汤兴:《孙子兵法》中的管理之道——道天地将法
- 实时语音视频通话 SDK 听声辨位的实现之道
- Python 学习:明确方向与开发工具的抉择
- 2017 年 10 个实用的 Javascript 与 CSS 库
- 游戏实时语音解决方案的炼成之路
- 音视频社交里回声消除技术的实现方式
- 语音视频 SDK 超低延迟优化的实现之道