Anfang des Inhaltsbereichs

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> (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

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

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.

Beispieltabelle room

Die Bezeichnungen für den Raumtyp sollen in der Ausgabe durch eine in der DECODE-Funktion vereinbarte Bezeichnung ersetzt werden.

SELECT hno, price, DECODE (roomtype,
'SINGLE', 1, 'DOUBLE', 2, 'SUITE', 3) room_code
FROM room

Ende des Inhaltsbereichs