Kategorien:

Funktionen für bedingte Ausdrücke

NVL2

Gibt Werte zurück, abhängig davon, ob die erste Eingabe NULL ist:

  • Wenn Ausdruck1 NOT NULL ist, gibt NVL2 Ausdruck2 zurück.

  • Wenn Ausdruck1 NULL ist, gibt NVL2 Ausdruck3 zurück.

Syntax

NVL2( <expr1> , <expr2> , <expr3> )

Argumente

Ausdruck1

Der Ausdruck, der darauf geprüft werden soll, ob er NULL ist.

Ausdruck2

Wenn Ausdruck1 nicht NULL ist, wird dieser Ausdruck ausgewertet und sein Wert zurückgegeben.

Ausdruck3

Wenn Ausdruck1 NULL ist, wird dieser Ausdruck ausgewertet und sein Wert zurückgegeben.

Nutzungshinweise

  • Alle drei Ausdrücke müssen denselben (oder einen kompatiblen) Datentyp aufweisen.

Sortierungsdetails

  • Die Sortierungsspezifikation für Ausdruck1 wird ignoriert, da es bei diesem Ausdruck nur darauf ankommt, ob er NULL ist oder nicht.

  • Die Sortierungsspezifikationen für Ausdruck2 und Ausdruck3 müssen kompatibel sein.

  • Der von der Funktion zurückgegebene Wert ist die Sortierung mit dem höchsten Rang von Ausdruck2 und Ausdruck3.

Beispiele

Wenn a nicht null ist, b zurückgeben, andernfalls c:

SELECT a, b, c, NVL2(a, b, c) FROM i2;

--------+--------+--------+---------------+
   A    |   B    |   C    | NVL2(A, B, C) |
--------+--------+--------+---------------+
 0      | 5      | 3      | 5             |
 0      | 5      | [NULL] | 5             |
 0      | [NULL] | 3      | [NULL]        |
 0      | [NULL] | [NULL] | [NULL]        |
 [NULL] | 5      | 3      | 3             |
 [NULL] | 5      | [NULL] | [NULL]        |
 [NULL] | [NULL] | 3      | 3             |
 [NULL] | [NULL] | [NULL] | [NULL]        |
--------+--------+--------+---------------+