Meilleure réponse
La fonction NVL dOracle vous permet de remplacer null par une chaîne dans les résultats dun requête. Cest utile pour se débarrasser des valeurs nulles.
Voici la syntaxe:
NVL(exp\_to\_check, replacement\_value)
Si exp\_to\_check
est nul, alors NLV () renvoie replacement\_value
. Si exp\_to\_check
nest pas nul, alors NLV () renvoie exp\_to\_check
.
Bien que ce ne soit pas une correspondance exacte, la fonction COALESCE () de PostgreSQL offre une fonctionnalité très similaire. Elle accepte un nombre illimité darguments et renvoie le premier argument qui nest pas nul. Si tous les arguments sont nuls, la fonction COALESCE
renverra null. Sa syntaxe est:
COALESCE (argument\_1, argument\_2, …)
Voici quelques exemples de base à illustrer, en utilisant mon client de développement de base de données Navicat for PostgreSQL :
Utilisation de COALESCE () dans une requête réelle
Voici un exemple plus réaliste utilisant la base de données déchantillons Sakila:
La table dadresses contient un champ dadresse et dadresse2. Ce dernier peut être nul. Nous pouvons les remplacer par la valeur «N / A» en utilisant la fonction COALESCE ().
Jaime que léditeur de requêtes Navicat puisse me montrer et même insérer la syntaxe correcte dans mes requêtes.
Voici la requête complète et les résultats:
Vous pouvez voir que les valeurs null address2 ont été converties.
Cordialement!
Adam
Réponse
COALESCE
Bien sûr, NVL
est un nom plus court, mais vous savez quoi?
- Personne ne comprend ce que signifie
NVL
. Cest difficile à expliquer aux noobs. -
NVL
ne prend que 2 arguments, alors queCOALESCE
prend un nombre arbitraire . -
COALESCE
fait partie du standard SQL ANSI. Chaque base de données SQL le prend en charge, y compris Oracle. Seul Oracle prend en chargeNVL
(et apparemment Informix aussi; voir les commentaires).