当前位置: 首页 > 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.gsyq.cn/news/55009.html

相关文章:

  • 2025年评价高的橡塑隔音材料最新TOP品牌厂家排行
  • 加能电源- CMTI测试系统/半导体测试/脉冲电源/测试 - FORCREAT
  • 2025年11月北京健康服务/康养旅游/全家福计划/朋友圈计划服务商推荐:卫基联建领跑行业榜单
  • oracle数据库迁移到金仓kingbase数据库
  • 2025广州出国留学中介有哪些公司
  • 2025年热门的材质安全的保温杯厂家最新权威实力榜
  • 山西临汾一对一辅导前瞻测评:2025大宁县、隰县等区县值得关注的教育品牌
  • 2025金华市一对一家教推荐:实测六款,提分选哪家?
  • Warning! PATH is not properly set up, /Users/i/.rvm/gems/ruby-3.3.0/bin is not at first place.
  • 2025年11月北京注销代办公司排行推荐:市场主流服务商客观比对
  • 2025年11月中国离婚财产分割律师推荐榜单:专业律师全面对比与权威排行
  • chrome:在linux上打开调试端口9222失败
  • 2025北京市留学中介排名
  • JavaScript 数组高阶用法汇总(含浏览器+微信小程序WebView支持)
  • 2025年比较好的缓冲托辊厂家最新用户好评榜
  • Windows 11/10 “移动热点”开启的几种方式 - 指南
  • 2025年评价高的大型珍珠棉发泡机最新TOP品牌厂家排行
  • nginx 会话保持
  • 2025年市场上喷塑厂家推荐榜单:成都汇元满机械制造有限公司领跑行业
  • [REPRINTED] - What Are Design Requirements: Types and Lifecycle - ENGINEER
  • 2025年11月远程控制软件推荐:知名机构排行榜与口碑评价对比指南
  • 苏州交通便利的陵园推荐:便捷祭扫与安心选择
  • 【2025-11-16】连岳摘抄
  • 2025年知名的除尘风机行业内知名厂家排行榜
  • ai论文工具推荐:助力科研创作效率提升的实用参考
  • ai论文软件推荐:提升写作效率的实用工具盘点
  • 2025年11月校服品牌推荐榜单:一份基于权威数据的选购指南
  • 2025年11月校服设计公司推荐榜单与选择指南:一份基于客观数据的权威列表
  • 2025年11月校服设计服务选择避坑指南:全面维度的详细解析
  • 实用指南:十六、Linux网络配置