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