Die einfache CASE-Funktion (simple_case_function) ist eine Spezialfunktion, die einen Ausdruck mit einer Menge einfacher Ausdrücke vergleicht, um einen Ergebnisausdruck (result_expression) zu bestimmen.
<simple_case_function> ::=
CASE <check_expression>
WHEN <search_expression>
THEN <result_expression>
[...]
[ELSE
<default_expression>])
END
<check_expression> | <search_expression> | <result_expression> | <default_expression> ::= <expression>
x |
check_expression |
Ausdruck x, für den ein Vergleich mit den Vergleichswerten u(i) durchgeführt werden soll |
u(i) |
search_expression |
Vergleichswerte u(i). Bei der ersten Übereinstimmung von u(i) mit x liefert die Funktion als Ergebnis v(i). |
v(i) |
result_expression |
Wert v(i), der angenommen wird, wenn u(i) mit x übereinstimmt |
z |
default_expression |
Wert z, optionaler Vorschlagswert |
CASE vergleicht nacheinander die Werte von x mit den Werten u(i). Wird eine Übereinstimmung festgestellt, dann ist das Ergebnis der einfachen CASE-Funktion der Wert v(i), der zu u(i) gehört.
Die Datentypen von x und u(i) müssen vergleichbar sein. Die Datentypen von v(i) und z müssen vergleichbar sein. Die Datentypen von u(i) und v(i) müssen nicht vergleichbar sein.
Sind x und u(i) NULL-Werte, so wird die Übereinstimmung festgestellt. Der Vergleich zwischen dem Spezial-NULL-Wert und einem beliebigen Wert führt nie zu einer Übereinstimmung.
Wird keine Übereinstimmung festgestellt, so liefert CASE das Ergebnis von z. Ist z nicht angegeben, dann ist der NULL-Wert das Ergebnis von CASE.
Siehe auch: