CASE (simple)
Mit „simple CASE“ wird ein Ergebnis basierend auf dem Wert eines einzelnen Eingabeausdrucks zurückgegeben. Wenn keiner der Vergleichswerte übereinstimmt, wird ein Standardergebnis zurückgegeben.
Siehe auch: IF.
Verwendungsbeispiel
Zahlungscodes durch intuitive Namen ersetzen:
CASE Payment Type
WHEN "CC" THEN "Credit Card"
WHEN "DC" THEN "Debit Card"
WHEN "GC" THEN "Gift Card"
WHEN "CA" THEN "Cash"
ELSE "Other"
END
Syntax
CASE input_expression
WHEN expression_to_match THEN result
[WHEN expression_to_match THEN result]
[...]
[ELSE else_result]
END
Parameter
input_expression: alle gültigen Felder oder Ausdrücke.- [
expression_to_match- alle gültigen Felder oder Ausdrücke. DieWHEN-Anweisung vergleichtinput_expressionmit `expression_to_match` und gibt „true“ zurück, wenn die beiden übereinstimmen, und „false“, wenn nicht.{#when-conditions}input_expression result– alle gültigen Felder oder Ausdrücke. Für jedeWHEN-Anweisung muss eineTHEN-Anweisung angegeben werden. Sie legt fest, welche Ergebnisse zurückgegeben werden, wenn die Bedingung erfüllt ist. Bei mehrerenWHEN-Anweisungen gibt dieCASE-Anweisung das Ergebnis für die erste erfüllte Anweisung zurück.else_result(optional): alle gültigen Felder oder Ausdrücke. DieELSEelse_result-Klausel gibt ein Standardergebnis für dieCASE-Anweisung an. Sie wird zurückgegeben, falls keine derWHEN-Anweisungen erfüllt ist. Wenn eineCASE-Anweisung keineELSE-Anweisung enthält und keine derWHEN-Anweisungen erfüllt ist, gibt dieCASE-AnweisungNULLzurück.
Funktionsweise von „simple CASE“
Eine „simple CASE“-Anweisung besteht aus den folgenden Elementen:
- Sie beginnt mit
CASE. Darauf folgt ein Eingabeausdruck. WHENist der Wert, mit dem derinput_expressionverglichen werden soll. Stimmt er überein, wird für die Anweisung „true“ zurückgegeben.input_expressionSie können mehrereWHEN-Anweisungen in einer einzelnenCASE-Anweisung verwenden.THENist das Ergebnis, das zurückgegeben werden soll, wenn die Bedingung derWHEN-Anweisung erfüllt ist. Für jedeWHEN-Anweisung in IhrerCASE-Anweisung muss eineTHEN-Anweisung angegeben werden.ELSEist optional. Falls keine Bedingung derWHEN-Anweisung erfüllt ist, gibtCASEden Wert derELSE-Anweisung zurück (oderNULL, wenn keineELSE-Anweisung festgelegt ist).- Sie endet mit
END.
CASE wertet WHEN-Anweisungen der Reihe nach aus und gibt das erste Ergebnis zurück, bei dem die Bedingung erfüllt ist. Die verbleibenden WHEN-Anweisungen und das ELSE-Ergebnis werden nicht ausgewertet. Wenn alle WHEN-Bedingungen „false“ oder NULL sind, gibt CASE das ELSE-Ergebnis zurück. Wenn in diesem Fall keine ELSE-Anweisung festgelegt wurde, wird NULL zurückgegeben.
Beispiel
Individuelle Links für Ihre Premiumkunden angeben:
CASE Premium Status
WHEN "Platinum" THEN CONCAT(Site URL, "platinum_welcome.html")
WHEN "Gold" THEN CONCAT(Site URL, "gold_welcome.html")
WHEN "Silver" THEN CONCAT(Site URL, "silver_welcome.html")
ELSE CONCAT(Site URL, "welcome.html")
END