描述
CASE 表达式用于条件逻辑,类似于编程语言中的 if-else,支持 CASE WHEN(搜索表达式)和 CASE value WHEN(简单表达式)两种形式。语法
CASE [ expression ] { WHEN boolean_expression THEN then_expression } [ ... ][ ELSE else_expression ]END
参数
子句/关键字 | 说明 |
boolean_expression | 任何计算结果为布尔类型的表达式。可使用逻辑运算符( AND, OR)组合多个表达式 |
then_expression | 根据 boolean_expression 条件返回的表达式;所有 then_expression 和 else_expression 的类型必须相同或可强制转换为通用类型 |
else_expression | 默认返回的表达式;所有 then_expression 和 else_expression 的类型必须相同或可强制转换为通用类型 |
示例
-- CASE WHEN (搜索表达式)SELECT id, CASE WHEN id > 2 THEN 'big' WHEN id > 1 THEN 'mid' ELSE 'small' END AS sizeFROM VALUES (1),(2),(3) AS t(id)-- CASE simple(简单表达式)SELECT id, CASE id WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'other' END AS nameFROM VALUES (1),(2),(3) AS t(id)