SQL NVL signifie « Null Value » (valeur Null) et sert à remplacer les valeurs NULL dans les en­re­gis­tre­ments et les bases de données par des valeurs plus sig­ni­fi­ca­tives. Cela permet de ra­tio­na­li­ser les bases de données, d’améliorer la li­si­bi­lité des analyses et des rapports, ainsi que d’optimiser les per­for­mances des requêtes de recherche.

Dé­fi­ni­tion de la fonction SQL NVL

Les ad­mi­nis­tra­teurs qui tra­vail­lent ré­gu­liè­re­ment avec des bases de données et qui ont besoin de jeux de données complets pour les analyses con­nais­sent le problème des valeurs NULL. Les données man­quantes et les lacunes peuvent entraîner des résultats faussés, des rapports inex­ploi­tables ainsi que des im­pré­ci­sions. La solution à ces problèmes est SQL NVL. Cette fonction pratique, « Null-Value Logic », vous aide à remplacer les colonnes et les champs vides par des valeurs ou des chaînes de ca­rac­tères définies par l’uti­li­sa­teur et plus sig­ni­fi­ca­tives. De cette manière, vos en­re­gis­tre­ments sont plus ex­ploi­tables et de meilleure qualité, amé­lio­rant ainsi la per­for­mance de vos bases de données.

Fonc­tion­ne­ment de SQL NVL

Le fonc­tion­ne­ment de NVL est simple : vous dé­fi­nis­sez avec SQL NVL la valeur avec laquelle vous souhaitez remplacer les valeurs NULL dans vos résultats cibles. La fonction vérifie si les en­re­gis­tre­ments sé­lec­tion­nés con­tien­nent des valeurs vraies ou fausses et remplace au­to­ma­ti­que­ment les valeurs NULL trouvées par les in­for­ma­tions sou­hai­tées. Les valeurs NULL sont gé­né­ra­le­ment des données absentes des lignes et des colonnes. Elles ne doivent donc pas être con­fon­dues avec une valeur « 0 » en tant que valeur numérique ou avec des espaces.

Attention : la fonction SQL NVL est utilisée prin­ci­pa­le­ment dans les bases de données ORACLE. Dans MySQL ou dans SQL Server, la fonction NVL a été remplacée par la fonction ISNULL. Si vous souhaitez remplacer des valeurs NULL dans des bases de données, utilisez plutôt la fonction ISNULL dans SQL Server et MS ACCESS. Dans MySQL, vous utilisez à nouveau la fonction IFNULL ou COALESCE. Le fonc­tion­ne­ment reste toutefois identique.

Conseil

Apprenez les prin­ci­pales bases et pos­si­bi­li­tés d’ap­pli­ca­tion du langage de pro­gram­ma­tion et de base de données très répandu SQL. Notre in­tro­duc­tion à SQL avec des exemples vous aidera à vous fa­mi­lia­ri­ser avec le langage in­for­ma­tique.

Dif­fé­rence entre NVL, ISNULL et IFNULL

Selon le type de base de données, la confusion entre NVL, ISNULL et IFNULL peut vite arriver. Ces trois fonctions sont très si­mi­laires, mais ne sont pas dis­po­nibles dans toutes les bases de données et systèmes de gestion de bases de données. Notre aperçu vous aidera à choisir la bonne fonction si vous souhaitez remplacer des valeurs NULL.

Syntaxe et pa­ra­mètres expliqués

Les fonctions SQL NVL, ISNULL et IFNULL re­quiè­rent chacune deux pa­ra­mètres, que nous appelons ici « valeur1 » et « valeur2 » :

  • Valeur1 : définit l’en­re­gis­tre­ment ou la colonne dans laquelle vous voulez trouver et remplacer les valeurs NULL.
  • Valeur2 : re­pré­sente la valeur par laquelle vous souhaitez remplacer les valeurs NULL dans vos résultats cibles. Vous pouvez saisir ici des in­di­ca­tions plus utiles telles que « Non renseigné », « 0 » ou « Inconnu » afin d’éliminer les inconnues et les espaces vides.

Vous trouverez ci-dessous la syntaxe pour chacune des trois fonctions.

NVL :

NVL(valeur1, valeur2)
sql

ISNULL :

ISNULL(valeur1, valeur2)
sql

IFNULL :

IFNULL(valeur1, valeur2)
sql

Ces fonctions sont gé­né­ra­le­ment utilisées en com­bi­nai­son avec SQL SELECT et FROM, qui per­met­tent de définir les en­re­gis­tre­ments à vérifier.

Dif­fé­rences entre SQL NVL, ISNULL et IFNULL

Voici comment se dis­tin­guent ces fonctions, bien que très si­mi­laires, pour le trai­te­ment des valeurs NULL :

Fonction SQL Trai­te­ment des valeurs NULL Com­pa­ti­bi­lité
SQL NVL Remplace les valeurs NULL trouvées par une valeur souhaitée Oracle, Db2
SQL ISNULL Remplace des valeurs NULL ou des chaînes vides par une valeur souhaitée SQL Server, MySQL, MS ACCESS
SQL IFNULL Remplace les valeurs NULL par la valeur souhaitée et n’in­ter­prète pas les espaces comme des valeurs NULL MySQL, Google BigQuery

Ap­pli­ca­tions de SQL NVL

Le rem­pla­ce­ment de valeurs NULL se prête aux cas d’ap­pli­ca­tion les plus divers. En voici quelques-uns :

  • Remplacer des données clients ou des adresses de livraison man­quantes par des valeurs lisibles telles que « Non renseigné ».
  • Remplacer des soldes de compte ou des tran­sac­tions inconnues par la valeur numérique 0.
  • Remplacer les valeurs vides relatives aux données des patients, aux données fi­nan­cières ou aux données de pro­duc­tion par des valeurs standard ou moyennes.
  • Remplacer les éva­lua­tions man­quantes ou les feedbacks inexis­tants par « Pas de données ».
  • Remplacer les images ou in­for­ma­tions man­quantes par « Image non dis­po­nible » ou « In­for­ma­tions non dis­po­nibles ».
Conseil

Vous souhaitez une gestion efficace des données avec des per­for­mances fiables, une capacité évolutive et une sécurité contre les pannes ? Alors, utilisez l’hé­ber­ge­ment SQL de IONOS avec des offres de serveur et d’hé­ber­ge­ment in­di­vi­duelles et comptez sur la pro­tec­tion des données aux normes eu­ro­péennes.

Serveurs virtuels (VPS)
VPS éco­no­miques sur serveurs Dell En­ter­prise
  • 1 Gbit/s de bande passante et trafic illimité
  • Dis­po­ni­bi­lité de 99,99 % et cer­ti­fi­ca­tion ISO
  • As­sis­tance 24/7 primée pour sa qualité et con­seil­ler personnel

Exemples pratiques SQL NVL

Pour illustrer l’uti­li­sa­tion de NVL, ISNULL et IFNULL, vous trouverez ci-dessous un exemple pratique à l’aide d’une table de clients avec des colonnes d’adresse, d’âge et d’ID client. Nous sou­hai­tons ici remplacer les éven­tuelles valeurs NULL sous « Adresse » par la valeur « Aucune donnée ».

Exemple pour SQL NVL

SELECT Adresse, Âge, ID client, NVL(Adresse, 'Aucune donnée')
FROM clients;
sql

Exemple de SQL ISNULL

SELECT Adresse, Âge, ID client, ISNULL(Adresse, 'Aucune donnée')
FROM clients;
sql

Exemple de SQL IFNULL

SELECT Adresse, Âge, ID client, IFNULL(Adresse, 'Aucune donnée')
FROM clients;
sql

Al­ter­na­tives à SQL NVL

Les fonctions NVL, ISNULL et IFNULL sont presque iden­tiques. Il faut cependant veiller à ce que la fonction en question soit dis­po­nible dans votre base de données. Une autre al­ter­na­tive presque identique parmi les commandes SQL ,opé­ra­teurs SQL et les fonctions est SQL COALESCE. COALESCE est dis­po­nible dans presque toutes les ap­pli­ca­tions de base de données et permet d’échanger des valeurs NULL trouvées avec une valeur de rem­pla­ce­ment.

La syntaxe est également identique :

COALESCE(Valeur1, Valeur2)
sql
Aller au menu principal