DECODE(x,y(i),...,z) ist eine Spezialfunktion, die Ausdrücke (expression) in Abhängigkeit von ihren Werten umcodiert.
x |
check_expression |
Ausdruck (expression), für den ein Vergleich mit den Vergleichswerten in y(i) durchgeführt werden soll |
y(i) |
search_and_result_spec |
<search_and_result_spec> ::= <search_expression>, <result_expression> (Kurzschreibweise: y(i)=u(i),v(i), i=1,...) Kombination aus Vergleichswert u(i) und Wert v(i), der diesen Vergleichswert gegebenenfalls ersetzen soll |
z |
default_expression |
Optionaler Vorschlagswert (LONG-Wert ist zulässig) |
u(i) |
search_expression |
Vergleichswert, der bei Übereinstimmung mit x durch v(i) ersetzt werden soll |
v(i) |
result_expression |
Wert, der den Wert u(i) gegebenenfalls ersetzen soll (LONG-Wert ist zulässig) |
SQL-Tutorial,
Umwandeln von Werten
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.
DECODE vergleicht nacheinander die Werte von x mit den Werten u(i). Wird eine Übereinstimmung festgestellt, dann ist das Ergebnis von DECODE der Wert v(i), der sich in der Kombination y(i)=u(i),v(i) befunden hat.
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 DECODE das Ergebnis von z. Ist z nicht angegeben, dann ist der NULL-Wert das Ergebnis von DECODE.