CASE(Azure 流分析)
计算条件列表,并返回多个可能的结果表达式之一。
CASE 表达式有两种格式:
CASE 简单表达式,它通过将表达式与一组简单的表达式进行比较来确定结果。
CASE 搜索表达式,它通过计算一组布尔表达式来确定结果。
这两种格式都需要 ELSE 参数。
CASE 可用于允许使用有效表达式的任意语句或子句。 例如,可以在 SELECT 等表达式以及 WHERE 和 HAVING 等子句中使用 CASE。
语法
CASE 简单表达式:
CASE input_expression
WHEN when_expression THEN result_expression [ ...n ]
ELSE else_result_expression
END
CASE 搜索表达式:
CASE
WHEN Boolean_expression THEN result_expression [ ...n ]
ELSE else_result_expression
END
参数
input_expression
使用简单 CASE 格式时计算的表达式。 计算值与 when_expression进行比较。
WHEN when_expression
使用简单 CASE 格式时 ,input_expression 与其进行比较的表达式。 when_expressions的类型不必匹配。
boolean_expression时
使用搜索的 CASE 格式时计算的布尔表达式。 如果此表达式的计算结果为 true,则返回相应的 result_expression 。
THEN result_expression
当 input_expression 等于简单 CASE 格式 ) when_expression (,或者 当boolean_expression 以搜索的 CASE 格式) 计算结果为 true (时返回的表达式。
ELSE else_result_expression
如果没有条件的计算结果为 TRUE,则返回的表达式。
返回类型
是 result_expression () 和 else_result_expression 中的类型集中的最高优先级类型。
示例
将 select 与简单的 CASE 表达式配合使用:
SELECT
CASE vehicleType
WHEN 'S' THEN 'Sedan'
WHEN 'T' THEN 'Truck'
WHEN 'V' THEN 'Van'
ELSE NULL
END as vehicleTypeName
FROM vehicles
将 select 与搜索的 CASE 表达式配合使用:
SELECT
CASE
WHEN temperature < 60 THEN 'Alert'
ELSE 'OK'
END as currentStatus
FROM sensor