2026-10-24 12:49:35
SQL中的CASE表达式是一种条件判断结构,允许在查询中实现类似编程语言的if-then-else逻辑。它分为两种主要形式:简单CASE表达式和搜索式CASE表达式,以下是详细说明及示例解析:
1. 简单CASE表达式语法:
CASE case_operand WHEN when_operand1 THEN result1 WHEN when_operand2 THEN result2 ... ELSE default_result END特点:
示例1(用户问题中的第一个例子):
SELECT cust_last_name, CASE credit_limit WHEN 100 THEN 'Low' WHEN 5000 THEN 'High' ELSE 'Medium' END AS credit_categoryFROM customers;解释:
语法:
CASE WHEN boolean_expression1 THEN result1 WHEN boolean_expression2 THEN result2 ... ELSE default_result END特点:
示例2(用户问题中的第二个例子):
SELECT AVG( CASE WHEN e.salary > 2000 THEN e.salary ELSE 2000 END ) AS "Average Salary" FROM employees e;解释:
执行顺序:
CASE会按顺序评估条件,第一个满足的WHEN分支会被执行,后续分支忽略。
示例:若credit_limit为100,不会检查5000的分支。
ELSE子句:
可选,但建议始终包含以处理未匹配的情况(默认返回NULL)。
数据类型一致性:
所有THEN和ELSE的结果应为相同或兼容的数据类型,否则可能报错。
性能影响:
复杂条件可能影响查询优化,尤其在大数据量时需谨慎使用。