CASE (Azure Stream Analytics)
Utvärderar en lista över villkor och returnerar ett av flera möjliga resultatuttryck.
CASE-uttrycket har två format:
Det enkla CASE-uttrycket jämför ett uttryck med en uppsättning enkla uttryck för att fastställa resultatet.
Det sökta CASE-uttrycket utvärderar en uppsättning booleska uttryck för att fastställa resultatet.
Båda formaten kräver ett ELSE-argument.
CASE kan användas i valfri instruktion eller -sats som tillåter ett giltigt uttryck. Du kan till exempel använda CASE i uttryck som SELECT och i satser som WHERE och HAVING.
Syntax
Enkelt CASE-uttryck:
CASE input_expression
WHEN when_expression THEN result_expression [ ...n ]
ELSE else_result_expression
END
Sökt CASE-uttryck:
CASE
WHEN Boolean_expression THEN result_expression [ ...n ]
ELSE else_result_expression
END
Argument
input_expression
Utvärderas uttrycket när det enkla CASE-formatet används. Det utvärderade värdet jämförs med when_expression.
NÄR when_expression
Är uttrycket som input_expression jämförs med när du använder det enkla CASE-formatet. Typerna av when_expressions behöver inte nödvändigtvis matcha.
NÄR boolean_expression
Utvärderas det booleska uttrycket när det sökta CASE-formatet används. Om det här uttrycket utvärderas till sant returneras motsvarande result_expression .
SEDAN result_expression
Returneras uttrycket när input_expression är lika med when_expression (i enkelt CASE-format) eller när boolean_expression utvärderas till sant (i det sökta CASE-formatet).
ELSE else_result_expression
Returneras uttrycket om inget av villkoren utvärderas till TRUE.
Returtyp
Är den högsta prioritetstypen från uppsättningen typer i result_expression och else_result_expression.
Exempel
Använda select med ett enkelt CASE-uttryck:
SELECT
CASE vehicleType
WHEN 'S' THEN 'Sedan'
WHEN 'T' THEN 'Truck'
WHEN 'V' THEN 'Van'
ELSE NULL
END as vehicleTypeName
FROM vehicles
Använda select med sökda CASE-uttryck:
SELECT
CASE
WHEN temperature < 60 THEN 'Alert'
ELSE 'OK'
END as currentStatus
FROM sensor