CASE (Azure Stream Analytics)

評估一份條件清單,並傳回多個可能的結果運算式之一。

CASE 運算式有兩種格式:

  • 簡單的 CASE 運算式會比較運算式和一組簡單運算式來得出結果。

  • 搜尋 CASE 運算會評估一組布林運算式來得出結果。

這兩種格式都需要 ELSE 引數。

CASE 可以用在允許有效運算式的任何陳述式或子句中。 例如,您可以在運算式 (例如 SELECT) 和子句 (例如 WHERE 和 HAVING) 中使用 CASE。

Syntax

簡單的 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的類型不一定必須相符。

WHEN 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中類型集合中最高的優先順序類型。

範例

搭配簡單的 CASE 運算式使用 select:

  SELECT
    CASE vehicleType
      WHEN 'S' THEN 'Sedan'
      WHEN 'T' THEN 'Truck'
      WHEN 'V' THEN 'Van'
      ELSE NULL
    END as vehicleTypeName
  FROM vehicles

搭配搜尋的 CASE 運算式使用 select:

  SELECT
    CASE
      WHEN temperature < 60 THEN 'Alert'
      ELSE 'OK'
    END as currentStatus
  FROM sensor