## DECODE(x,y(i),...,z)

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)

### Beispiele

SQL-Tutorial, Umwandeln von Werten

### Erläuterung

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.