La fonction SQL IFNULL() est utilisée pour vérifier la valeur d’une ex­pres­sion. Si la valeur est égale à NULL, une valeur al­ter­na­tive est renvoyée à la place. Si ce n’est pas le cas, le système affiche sa valeur initiale.

Qu’est-ce que SQL IFNULL() ?

Dans le Struc­tu­red Query Language (SQL), la fonction SQL COALESCE() est un outil important. Toutefois, si vous souhaitez afficher une valeur spé­ci­fique lorsqu’une ex­pres­sion donnée est vide ou NULL, vous pouvez utiliser SQL IFNULL(). Cette fonction vérifie l’ex­pres­sion et effectue ensuite l’une des deux actions possibles : si la valeur vérifiée est NULL, une valeur al­ter­na­tive est renvoyée, que vous pouvez dé­ter­mi­ner au préalable. Si la valeur en­re­gis­trée n’est pas NULL, l’ex­pres­sion normale est en revanche renvoyée. Cela peut paraître un peu confus de prime abord, mais avec quelques exemples pratiques, vous vous rendrez vite compte de la valeur ajoutée de cette fonction.

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

Syntaxe et fonc­tion­ne­ment

Voyons d’abord la syntaxe de base de SQL IFNULL(). Elle ressemble à ceci :

IFNULL(expression, expression_alternative);
sql

La première ex­pres­sion est celle dont la valeur doit être vérifiée. Si elle est NULL, l’ex­pres­sion al­ter­na­tive est affichée.

Exemples d’uti­li­sa­tion de la fonction

Si vous souhaitez tester le fonc­tion­ne­ment de SQL IFNULL(), utilisez ces deux exemples simples. Dans le premier essai, la fonction détectera que la valeur de l’ex­pres­sion n’est pas NULL. Voici le code cor­res­pon­dant :

IFNULL('Ceci est la première expression', 'Ceci est l’alternative');
sql

Si vous exécutez le code, la sortie res­sem­blera à ceci :

Ceci est la première expression
sql

La première ex­pres­sion a une valeur et la fonction renonce donc à une al­ter­na­tive. Il en va autrement dans l’exemple suivant :

IFNULL(' ', 'Ceci est l’alternative');
sql

Nous obtenons alors la sortie suivante :

Ceci est l’alternative
sql

Comme la valeur de la première ex­pres­sion est NULL, la fonction recourt à l’al­ter­na­tive.

Cela fonc­tionne bien sûr aussi avec des valeurs nu­mé­riques :

IFNULL(10, 15);
sql

Voici la sortie :

10
sql

Sans valeur stockée, SQL IFNULL() entre en jeu :

IFNULL(NULL, 15);
sql

La sortie est alors dif­fé­rente :

15
sql

Exemple concret

Une uti­li­sa­tion possible de SQL IFNULL() pourrait être la suivante. Nous avons une table appelée « Li­vrai­sons », qui se compose d’une colonne pour le nom, une pour l’adresse de livraison et une autre pour l’adresse de fac­tu­ra­tion.

Nom Adresse de livraison Adresse de fac­tu­ra­tion
Berron 20, avenue Gambetta 20, avenue Gambetta
Froissy 18, rue Léon Blum 2, avenue de la Gare
Sulis 6, place du Commerce NULL
Verdon 12, passage Haxo 65, avenue du Général de Gaulle
Paré 5, rue de Choisy 5, rue de Choisy

Un client n’a donc indiqué qu’une adresse de livraison sans adresse de fac­tu­ra­tion. Si vous voulez vous assurer que toutes les entrées sont complètes, vous pouvez utiliser SQL IFNULL(). Le code approprié avec la commande SQL SELECT se compose ainsi :

SELECT Nom, IFNULL(Adresse de facturation, Adresse de livraison) Adresse
FROM Livraisons;
sql

Nous obtenons ainsi une nouvelle table dans laquelle une adresse est en­re­gis­trée au moins pour chaque client :

Nom Adresse
Berron 20, avenue Gambetta
Froissy 18, rue Léon Blum
Sulis 6, place du Commerce
Verdon 12, passage Haxo
Paré 5, rue de Choisy

Al­ter­na­tives à SQL IFNULL()

En plus de la fonction COALESCE() dont nous avons parlé, il existe d’autres al­ter­na­tives à SQL IFNULL(). SQL NVL() convertit également une valeur NULL en une valeur de votre choix. SQL ISNULL() vérifie également si une valeur est NULL ou non, puis la remplace par une valeur définie si né­ces­saire.

Conseil

La base de données parfaite pour vos besoins : avec le serveur d’hé­ber­ge­ment SQL de IONOS, vous avez le choix entre MSSQL, MySQL ou MariaDB et profitez de per­for­mances de pointe et de puis­santes fonc­tion­na­li­tés de sécurité.

Aller au menu principal