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