Quel est léquivalent PostgreSQL de la fonction NVL dOracle?


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 que COALESCE 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 charge NVL (et apparemment Informix aussi; voir les commentaires).

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *