Catégories :

Fonctions d’expressions conditionnelles

NVL2

Retourne des valeurs selon que la première entrée est NULL :

  • Si expr1 est NOT NULL, alors NVL2 renvoie expr2.

  • Si expr1 est NULL, alors NVL2 renvoie expr3.

Syntaxe

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

Arguments

expr1

L’expression à vérifier pour savoir s’il s’agit de NULL.

expr2

Si expr1 n’est pas NULL, cette expression sera évaluée et sa valeur sera renvoyée.

expr3

Si expr1 est NULL, cette expression sera évaluée et sa valeur sera renvoyée.

Notes sur l’utilisation

  • Les trois expressions doivent avoir le même type de données (ou compatibles).

Détails du classement

  • La spécification de classement pour expr1 est ignorée, car tout ce qui importe dans cette expression est de savoir s’il s’agit ou non d’une propriété NULL.

  • Les spécifications de classement pour expr2 et expr3 doivent être compatibles.

  • La valeur renvoyée par la fonction a le classement le plus élevé -préséance parmi expr2 et expr3.

Exemples

Si a n’est pas null, renvoyez b, sinon renvoyez 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