CASE (Azure Stream Analytics)
Wertet eine Liste von Bedingungen aus und gibt einen von mehreren möglichen Ergebnisausdrücken zurück.
Der CASE-Ausdruck verfügt über zwei Formate:
Der einfache CASE-Ausdruck vergleicht einen Ausdruck mit mehreren einfachen Ausdrücken, um das Ergebnis zu bestimmen.
Der komplexe CASE-Ausdruck wertet eine Menge boolescher Ausdrücke aus, um das Ergebnis zu bestimmen.
Beide Formate erfordern ein ELSE-Argument.
CASE kann in einer beliebigen Anweisung oder Klausel verwendet werden, die einen gültigen Ausdruck zulässt. Sie können beispielsweise CASE in Ausdrücken wie SELECT und in Klauseln wie WHERE und HAVING verwenden.
Syntax
Einfacher CASE-Ausdruck:
CASE input_expression
WHEN when_expression THEN result_expression [ ...n ]
ELSE else_result_expression
END
Komplexer CASE-Ausdruck:
CASE
WHEN Boolean_expression THEN result_expression [ ...n ]
ELSE else_result_expression
END
Argumente
input_expression
Der Ausdruck, der ausgewertet wird, wenn das einfache CASE-Format verwendet wird. Der ausgewertete Wert wird mit dem when_expression verglichen.
WHEN when_expression
Der Ausdruck, mit dem input_expression verglichen wird, wenn das einfache CASE-Format verwendet wird. Die Typen der when_expressions müssen nicht unbedingt übereinstimmen.
WANN boolean_expression
Der boolesche Ausdruck, der ausgewertet wird, wenn das durchsuchte CASE-Format verwendet wird. Wenn dieser Ausdruck als true ausgewertet wird, wird die entsprechende result_expression zurückgegeben.
THEN result_expression
Der Ausdruck, der zurückgegeben wird, wenn input_expressiongleich when_expression (im einfachen CASE-Format) oder wenn boolean_expression als TRUE ausgewertet wird (im durchsuchten CASE-Format).
ELSE else_result_expression
Der zurückgegebene Ausdruck, wenn keine der Bedingungen auf TRUE ausgewertet wird.
Rückgabetyp
Ist der höchste Rangfolgentyp aus dem Satz von Typen in result_expression und else_result_expression.
Beispiele
Verwenden von select mit einem einfachen CASE-Ausdruck:
SELECT
CASE vehicleType
WHEN 'S' THEN 'Sedan'
WHEN 'T' THEN 'Truck'
WHEN 'V' THEN 'Van'
ELSE NULL
END as vehicleTypeName
FROM vehicles
Verwenden von select mit durchsuchtem CASE-Ausdruck:
SELECT
CASE
WHEN temperature < 60 THEN 'Alert'
ELSE 'OK'
END as currentStatus
FROM sensor