Die allgemeine CASE-Funktion (searched_case_function) ist eine Spezialfunktion, die eine Menge von Suchbedingungen untersucht, um einen Ergebnisausdruck zu bestimmen.
Syntax
<searched_case_function> ::=
CASE
WHEN <search_condition> THEN <result_expression>
[...]
[ELSE <default_expression>])
END
<result_expression> ::= <expression>
<default_expression> ::= <expression>
CASE überprüft nacheinander die Suchbedingungen search_condition. Sowie eine Suchbedingung gefunden wird, die wahr ist, ist das Ergebnis der allgemeinen CASE-Funktion der Wert des Ausdrucks result_expression, der zur Suchbedingung gehört.
Wird keine Suchbedingung gefunden, die wahr ist, so liefert CASE das Ergebnis des Ausdrucks default_expression. Ist default_expression nicht angegeben, dann ist der NULL-Wert das Ergebnis von CASE.
Alle Suchbedingungen ohne ROWNO-Prädikat sind zulässig. Die Datentypen der Ausdrücke result_expression und default_expression müssen vergleichbar sein.
CASE
WHEN price IS NULL THEN 'Not yet priced'
WHEN price < 10 THEN 'Very Reasonable Title'
WHEN price >= 10 and price < 20 THEN 'Coffee Table
Title'
ELSE 'Expensive book!'
END
Siehe auch: