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.
- 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);
sqlLa 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');
sqlSi vous exécutez le code, la sortie ressemblera à ceci :
Ceci est la première expression
sqlLa 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');
sqlNous obtenons alors la sortie suivante :
Ceci est l’alternative
sqlComme 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);
sqlVoici la sortie :
10
sqlSans valeur stockée, SQL IFNULL()
entre en jeu :
IFNULL(NULL, 15);
sqlLa sortie est alors différente :
15
sqlExemple 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;
sqlNous 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.
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é.