CASE

最近更新时间:2026-05-20 14:11:22

我的收藏

描述

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_expressionelse_expression 的类型必须相同或可强制转换为通用类型
else_expression
默认返回的表达式;所有 then_expressionelse_expression 的类型必须相同或可强制转换为通用类型

示例

-- CASE WHEN (搜索表达式)
SELECT id, CASE WHEN id > 2 THEN 'big' WHEN id > 1 THEN 'mid' ELSE 'small' END AS size
FROM 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 name
FROM VALUES (1),(2),(3) AS t(id)