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