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

27、CASE 表达式

1、CASE 表达式

是 SQL 标准中用于实现条件逻辑(类似 if-elseswitch)的功能。

它可以在 SELECTWHEREORDER BYGROUP BY 甚至 UPDATE/INSERT 中使用,是编写灵活查询的关键工具。

形式1:简单 CASE 表达式

语法:

CASE expressionWHEN value1 THEN result1WHEN value2 THEN result2...ELSE default_result
END

执行逻辑:逐值比较:将 expression 与每个 WHEN 后面的 value 进行相等比较,

 

 

  • 如果 expression 与 WHEN 子句中相应的表达式匹配(相等),CASE 语句将返回对应的 result
  • 如果 expression 与 WHEN 子句中的任何表达式都不匹配它将返回 ELSE 子句中的 default_result
  • ELSE 子句是可选的。如果您省略 ELSE 子句,并且表达式与 WHEN 子句中的任何表达式都不匹配,则 CASE 表达式将返回 NULL

 

 

形式2:搜索 CASE 表达式

语法:

CASEWHEN condition1 THEN result1WHEN condition2 THEN result2...ELSE default_result
END

执行逻辑:CASE 表达式从上到下评估每个 WHEN 子句中的布尔表达式。

  • 如果表达式为 true,则搜索 CASE 语句返回相应 THEN 子句中的结果
  • 如果表达式的计算结果都为 false,则 CASE 表达式返回 ELSE 子句中的 default_result
  • ELSE 子句是可选的。如果省略它并且没有布尔表达式的计算结果为 true则 CASE 表达式返回 NULL

如:表 employees

idnamedept_idsalarystatus
1 Alice 1 95000 active
2 Bob 2 45000 inactive
3 Carol 1 110000 active
4 Dave 3 NULL active

简单 CASE(Simple CASE),将部门 ID 转为部门名称

SELECT name,dept_id,CASE dept_idWHEN 1 THEN 'Human Resources'WHEN 2 THEN 'Engineering'WHEN 3 THEN 'Sales'ELSE 'Unknown Department'END AS department_name
FROM employees;

结果:

namedept_iddepartment_name
Alice 1 Human Resources
Bob 2 Engineering
Carol 1 Human Resources
Dave 3 Sales

搜索 CASE(Searched CASE),根据薪资划分等级(范围判断)

SELECT name,salary,CASEWHEN salary >= 100000 THEN 'High'WHEN salary >= 50000 THEN 'Medium'WHEN salary IS NULL THEN 'Not Set'ELSE 'Low'END AS salary_level
FROM employees;

结果:

namesalarysalary_level
Alice 95000 Medium
Bob 45000 Low
Carol 110000 High
Dave NULL Not Set

结合多列条件(复合判断)

SELECT name,status,salary,CASEWHEN status = 'inactive' THEN 'Inactive Employee'WHEN salary > 100000 AND dept_id = 1 THEN 'HR Executive'WHEN salary > 80000 THEN 'Senior Staff'ELSE 'Regular Staff'END AS employee_category
FROM employees;

 结果:

namestatussalaryemployee_category
Alice active 95000 Senior Staff
Bob inactive 45000 Inactive Employee
Carol active 110000 HR Executive
Dave active NULL Regular Staff
http://www.jsqmd.com/news/45386/

相关文章:

  • DWG看图软件哪个好?这4个宝藏工具,看看你用过哪一个?
  • 2025年热门的电梯销售品牌综合竞争力排行榜
  • 从Visual Studio 2022升级至Visual Studio 2026
  • 2025年11月北京健康服务/康养旅游/全家福计划/朋友圈计划服务商TOP10权威榜单:哪家服务商登顶
  • 强大的Bash自动化测试框架Bats-core
  • 2025年评价高的橡塑隔音材料最新TOP品牌厂家排行
  • 破局AI算力自由:维谛技术发布Vertiv SmartArray新一代智算MDC解决方案
  • 加能电源- CMTI测试系统/半导体测试/脉冲电源/测试 - FORCREAT
  • 2025年11月北京健康服务/康养旅游/全家福计划/朋友圈计划服务商推荐:卫基联建领跑行业榜单
  • oracle数据库迁移到金仓kingbase数据库
  • 2025年国内PMS酒店管理系统公司排行榜TOP5:智能化转型首选指南
  • 2025杭州的留学中介哪家好
  • 2025广州出国留学中介有哪些公司
  • 2025北京最佳留学机构
  • 2025年热门的材质安全的保温杯厂家最新权威实力榜
  • 纵横G700迪拜全球上市:中国豪华越野以全球标准重塑市场格局
  • 椭圆曲线Diffie-Hellman密钥交换(ECDH)
  • jmeter JVM与 压测TPS、并发用户数 关系 - BKY007
  • 朔州一对一辅导榜单更新:聚焦2025口碑最好的补习机构与平台
  • 2025年热门的冷弯半圆管品牌厂家排行榜
  • 2025年11月欧洲移民机构推荐榜:权威机构名单与选择指南
  • 2025年11月求职机构推荐:口碑评价汇总与市场研究报告
  • 2025景德镇一对一家教辅导推荐:性价比与口碑排行榜
  • 山西临汾一对一辅导前瞻测评:2025大宁县、隰县等区县值得关注的教育品牌
  • 2025年11月应届生求职机构推荐榜单与选择指南:一份基于真实数据的权威列表
  • 2025年11月马耳他移民机构排行榜:资质认证与用户满意度深度解析
  • 2025金华市一对一家教推荐:实测六款,提分选哪家?
  • 太原一对一辅导机构全面盘点:2025迎泽、晋源等区县优质教育机构推荐
  • 【DeepSeek新开源】DeepSeek-OCR如何用“视觉压缩”革新长文本处理 - 详解
  • Warning! PATH is not properly set up, /Users/i/.rvm/gems/ruby-3.3.0/bin is not at first place.