SQL IFNULL() : remplacer NULL par une valeur alternative

La fonction SQL IFNULL() est utilisée pour vérifier la valeur d’une expression. Si la valeur est égale à NULL, une valeur alternative 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 Structured Query Language (SQL), la fonction SQL COALESCE() est un outil important. Toutefois, si vous souhaitez afficher une valeur spécifique lorsqu’une expression donnée est vide ou NULL, vous pouvez utiliser SQL IFNULL(). Cette fonction vérifie l’expression et effectue ensuite l’une des deux actions possibles : si la valeur vérifiée est NULL, une valeur alternative est renvoyée, que vous pouvez déterminer au préalable. Si la valeur enregistrée n’est pas NULL, l’expression 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)
Faites le choix de la performance
  • Virtualisation complète avec accès root
  • Trafic illimité et jusqu'à 1 Gbit/s de bande passante
  • Stockage SSD NVMe rapide et édition Plesk Web Host

Syntaxe et fonctionnement

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

IFNULL(expression, expression_alternative);
sql

La première expression est celle dont la valeur doit être vérifiée. Si elle est NULL, l’expression alternative est affichée.

Exemples d’utilisation de la fonction

Si vous souhaitez tester le fonctionnement de SQL IFNULL(), utilisez ces deux exemples simples. Dans le premier essai, la fonction détectera que la valeur de l’expression n’est pas NULL. Voici le code correspondant :

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

Si vous exécutez le code, la sortie ressemblera à ceci :

Ceci est la première expression
sql

La première expression a une valeur et la fonction renonce donc à une alternative. 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 expression est NULL, la fonction recourt à l’alternative.

Cela fonctionne bien sûr aussi avec des valeurs numé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 différente :

15
sql

Exemple concret

Une utilisation possible de SQL IFNULL() pourrait être la suivante. Nous avons une table appelée « Livraisons », qui se compose d’une colonne pour le nom, une pour l’adresse de livraison et une autre pour l’adresse de facturation.

Nom Adresse de livraison Adresse de facturation
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 facturation. 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 enregistré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

Alternatives à SQL IFNULL()

En plus de la fonction COALESCE() dont nous avons parlé, il existe d’autres alternatives à 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écessaire.

Conseil

La base de données parfaite pour vos besoins : avec le serveur d’hébergement SQL de IONOS, vous avez le choix entre MSSQL, MySQL ou MariaDB et profitez de performances de pointe et de puissantes fonctionnalités de sécurité.

Cet article vous a-t-il été utile ?
Page top