Kategorien:

Funktionen für bedingte Ausdrücke

NVL2

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

  • Wenn Ausdruck expr1 den Wert NOT NULL hat, gibt NVL2 den Ausdruck expr2 zurück.

  • Wenn der Ausdruck expr1 den Wert NULL hat, gibt NVL2 den Ausdruck expr3 zurück.

Syntax

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

Argumente

expr1

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

expr2

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

expr3

Wenn expr1 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 expr1 wird ignoriert, da es bei diesem Ausdruck nur darauf ankommt, ob er NULL ist oder nicht.

  • Die Sortierungsspezifikationen für expr2 und expr3 müssen kompatibel sein.

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

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]        |
--------+--------+--------+---------------+
Copy