CASE (SQL Server Compact)

Wertet eine Liste von Bedingungen aus und gibt einen von mehreren möglichen Ergebnisausdrücken zurück.

CASE weist zwei Formate auf:

  • Die einfache CASE-Funktion vergleicht einen Ausdruck mit mehreren einfachen Ausdrücken, um das Ergebnis zu bestimmen.

  • Die komplexe CASE-Funktion wertet eine Reihe boolescher Ausdrücke aus, um das Ergebnis zu bestimmen.

Bei beiden Formaten wird ein optionales ELSE-Argument unterstützt.

Syntax

CASE input_expression 
    WHEN when_expression THEN result_expression 
        [ ...n ] 
    [ 
        ELSE else_result_expression 
    ] 
END 

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. Als input_expression-Argument kann jeder gültige Ausdruck in Microsoft SQL Server Compact verwendet werden.

  • WHEN when_expression
    Ein einfacher Ausdruck, mit dem input_expression verglichen wird, wenn das einfache CASE-Format verwendet wird. Als when_expression-Argument kann jeder gültige SQL Server-Ausdruck verwendet werden. Die Datentypen des input_expression-Arguments und jedes when_expression-Arguments müssen identisch sein oder implizit konvertiert werden können.

  • n
    Ein Platzhalter, der anzeigt, dass mehrere WHEN when_expression THEN result_expression-Klauseln oder mehrere WHEN Boolean_expression THEN result_expression-Klauseln verwendet werden können.

  • THEN result_expression
    Der Ausdruck, der zurückgegeben wird, wenn der Vergleich von input_expression mit when_expression den Wert TRUE ergibt oder wenn Boolean_expression den Wert TRUE ergibt. Als result_expression-Argument kann jeder gültige SQL Server-Ausdruck verwendet werden.

  • ELSE else_result_expression
    Der Ausdruck, der zurückgegeben wird, wenn keine Vergleichsoperation TRUE ergibt. Ist dieses Argument nicht angegeben und ergibt keine Vergleichsoperation TRUE, gibt die CASE-Funktion NULL zurück. Als else_result_expression-Argument kann jeder gültige SQL Server-Ausdruck verwendet werden. Die Datentypen des else_result_expression-Arguments und jedes result_expression-Arguments müssen identisch sein oder implizit konvertiert werden können.

  • WHEN Boolean_expression
    Der boolesche Ausdruck, der ausgewertet wird, wenn das komplexe CASE-Format verwendet wird. Boolean_expression kann jeder gültige boolesche Ausdruck sein.

Ergebnistypen

Gibt aus der Gruppe der Typen, die in den result_expression-Argumenten sowie im optionalen else_result_expression-Argument verwendet werden, den höchstrangigen Typ zurück..

Beispiel

Im folgenden Beispiel wird die Versandart für eingegangene Bestellungen zurückgegeben.

SELECT [Ship Via], CASE [Ship Via]
    WHEN 1 THEN 'A.Datum'
    WHEN 2 THEN 'Contoso'
    WHEN 3 THEN 'Consolidated Messenger'
        ELSE 'Unknown'
        END
FROM Orders