‌‌Oracle CASE WHEN‌

‌‌Oracle CASE WHEN‌ 是条件判断语句的核心语法,支持简单表达式和搜索表达式两种形式,可用于SELECT、WHERE、GROUP BY等子句中实现复杂逻辑判断,其执行顺序自上而下,首次满足条件则终止判断。

‌CASE WHEN‌ 提供两种语法形式,满足不同场景需求:

1、 ‌‌简单CASE表达式‌:直接匹配列值与条件值,适用于等值判断。

CASE 列名

WHEN 值1 THEN 结果1

WHEN 值2 THEN 结果2

ELSE 默认值

END

示例:CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END‌‌1

2、 ‌‌搜索CASE表达式‌:支持更灵活的条件判断(如范围、不等式)。

CASE

WHEN 条件1 THEN 结果1

WHEN 条件2 THEN 结果2

ELSE 默认值

END

示例:CASE WHEN salary > 10000 THEN '高管' WHEN salary BETWEEN 5000 AND 10000 THEN '高绩效' ELSE '普通' END‌‌

3、Oracle CASE WHEN 在语句中的应用场景

‌SELECT子句‌:动态计算列值。

SELECT grade,

COUNT(CASE WHEN sex = 1 THEN 1 ELSE NULL END) AS 男生数,

COUNT(CASE WHEN sex = 2 THEN 1 ELSE NULL END) AS 女生数

FROM students

GROUP BY grade;

(统计不同年级的男女学生人数)‌‌2‌

  1. ‌‌WHERE子句‌:条件筛选。

sqlCopy Code

SELECT *

FROM employees

WHERE CASE

WHEN deptno = 50 THEN salary > 6000

WHEN deptno = 60 THEN commission > 0.3

END;

(按部门动态筛选工资或提成比例)‌‌

  1. ‌GROUP BY子句‌:自定义分组逻辑。

SELECT

CASE WHEN hire_date < 2010 THEN '资深员工'

WHEN hire_date < 2020 THEN '在职员工'

ELSE '未入职'

END AS 员工分组,

COUNT(*) AS 人数

FROM employees

GROUP BY 员工分组;

(按入职时间分段统计人数)‌‌

4、注意事项与最佳实践

‌执行顺序‌:WHEN子句按书写顺序判断,首个满足条件即终止。‌‌

‌性能优化‌:

判断条件不超过10行时,优先使用‌DECODE函数(语法更简洁)。‌‌

避免遗漏‌ELSE子句,否则未匹配项返回NULL可能影响统计结果。‌‌

‌‌Oracle 23c新特性‌:支持逗号分隔的多值匹配,简化等值判断(如CASE salary WHEN 9000,12000 THEN '标准薪资')

相关推荐
专注VB编程开发20年5 分钟前
python图片验证码识别selenium爬虫--超级鹰实现自动登录,滑块,点击
数据库·python·mysql
智商偏低6 分钟前
Postgresql导入几何数据(shp,geojson)的几种方式
数据库·postgresql
海心焱9 分钟前
从零开始构建 AI 插件生态:深挖 MCP 如何打破 LLM 与本地数据的连接壁垒
jvm·人工智能·oracle
我是Superman丶34 分钟前
在 PostgreSQL 中使用 JSONB 类型并结合 MyBatis-Plus 实现自动注入,主要有以下几种方案
数据库·postgresql·mybatis
五度易链-区域产业数字化管理平台38 分钟前
「五度易链」行业标准信息数据库简介
大数据·数据库
霖霖总总1 小时前
[小技巧65]深入 InnoDB 页的逻辑存储结构:16KB 页的逻辑全景解析
数据库·mysql
数研小生1 小时前
关键词搜索京东列表API技术对接指南
大数据·数据库·爬虫
野犬寒鸦1 小时前
从零起步学习并发编程 || 第五章:悲观锁与乐观锁的思想与实现及实战应用与问题
java·服务器·数据库·学习·语言模型
VX:Fegn08952 小时前
计算机毕业设计|基于springboot + vue云租车平台系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
Elastic 中国社区官方博客2 小时前
跳过 MLOps:通过 Cloud Connect 使用 EIS 为自管理 Elasticsearch 提供托管云推理
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索