功能
计算条件列表,并返回多个可能的结果表达式之一。可以在sql中对字段进行简单的处理。语法
case语句有简单表达式和搜索表达式两种用法,格式如下:--Simple CASE expression:
CASE input_expression
WHEN when_expression THEN result_expression [ ...n ]
[ ELSE else_result_expression ]
END
--Searched CASE expression:
CASE
WHEN Boolean_expression THEN result_expression [ ...n ]
[ ELSE else_result_expression ]
END
CASE 简单表达式的工作方式如下:将第一个表达式与每个 WHEN 子句中的表达式进行比较,以确定它们是否等效。 如果这些表达式等效,将返回 THEN 子句中的表达式。
- 仅用于等同性检查。
- 按指定的顺序计算每个 WHEN 子句的 input_expression = when_expression。
- 返回首个 input_expression = when_expression 的计算结果为 TRUE 的 result_expression。
- 如果 input_expression = when_expression 的计算结果均不为 TRUE,则在指定了 ELSE 子句的情况下, SQL Server 数据库引擎 将返回 else_result_expression;若没有指定 ELSE 子句,则返回 NULL 值。
CASE 搜索表达式:
- 按指定顺序对每个 WHEN 子句的 Boolean_expression 进行计算。
- 返回首个 Boolean_expression 的计算结果为 TRUE 的 result_expression。
- 如果 Boolean_expression 的计算结果均不为 TRUE,则在指定了 ELSE 子句的情况下, 数据库引擎 将返回 else_result_expression;若没有指定 ELSE 子句,则返回 NULL 值。
示例
简单表达式:CASE ProductLine
WHEN 'R' THEN 'Road'
WHEN 'M' THEN 'Mountain'
WHEN 'T' THEN 'Touring'
WHEN 'S' THEN 'Other sale items'
ELSE 'Not for sale'
END
搜索表达式:
CASE
WHEN MIN(value) <= 0 THEN 0
WHEN MAX(1/value) >= 100 THEN 1
END