SQL ISNULL() : vérifier et remplacer les valeurs NULL
SQL ISNULL()
est utilisée pour vérifier si une expression a la valeur NULL. Si c’est le cas, la fonction remplace NULL par une valeur de remplacement du même type de données.
Qu’est-ce que SQL ISNULL()
?
Le Structured Query Language (SQL) vous permet de créer des tableaux et de les remplir avec des valeurs. Si vous n’attribuez pas une valeur à un champ de la table, ce dernier reste vide. Il reçoit alors la valeur « NULL », qui indique qu’il n’y a pas de valeur réelle. Supposons maintenant que vous souhaitiez faire en sorte qu’une valeur de remplacement soit prise en compte au lieu de NULL. Pour cela, le langage met à votre disposition différentes fonctions, comme la fonction SQL ISNULL()
. Celle-ci vérifie dans un premier temps si une expression est NULL. Si c’est le cas, elle évalue une expression de remplacement définie. Sinon, la valeur initiale est prise en compte.
- 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
La syntaxe de la fonction
Le fonctionnement de SQL ISNULL()
est assez simple à appréhender :
ISNULL(expression, valeur de remplacement);
sqlLa fonction vérifie d’abord si la valeur de l’expression donnée est NULL. Si c’est le cas, la valeur de remplacement est affichée. Dans le cas contraire, SQL ISNULL()
revient à l’expression originale. Il est important de noter que « expression » et « valeur de remplacement » doivent avoir le même type de données.
Fonctionnement de SQL ISNULL()
SQL ISNULL()
est utilisé dans une commande SQL comme SELECT
. Dans les exemples suivants, vous verrez d’abord la sortie lorsque la valeur de l’expression est NULL, puis l’autre cas possible. Voici la première option :
SELECT ISNULL(' ', 'Ceci est la valeur de remplacement');
sqlDans ce cas, la sortie est la suivante :
Ceci est la valeur de remplacement
sqlDans l’exemple suivant, la fonction est à nouveau appliquée, mais elle constate que l’expression a une valeur et l’affiche donc :
SELECT ISNULL('Ceci est l'expression réelle', 'Ceci est la valeur de remplacement');
sqlNous obtenons donc cette sortie :
Ceci est l’expression réelle
sqlExemple pratique
Pour l’exemple suivant, nous allons créer une table simple appelée « Commandes ». Celle-ci contient des colonnes pour le numéro de client, le nom du client ainsi qu’un numéro de commande :
Numéro de client | Nom | Numéro de commande |
---|---|---|
1326 | Berron | 00451 |
1288 | Froissy | |
1262 | Sulis | 00318 |
Si nous voulons ensuite mieux structurer notre table, nous pouvons utiliser SQL ISNULL()
pour remplacer la valeur NULL par le caractère de remplacement 00000
. Le code correspondant est alors le suivant :
SELECT Numéro de client,
ISNULL(Numéro de commande, '00000'), Numéro de commande
FROM Commandes;
sqlSi nous exécutons ce code, nous obtenons le tableau suivant :
Numéro de client | Nom | Numéro de commande |
---|---|---|
1326 | Berron | 00451 |
1288 | Froissy | 00000 |
1262 | Sulis | 00318 |
Combinaison avec des fonctions d’agrégation
SQL ISNULL()
fonctionne aussi en combinaison avec des fonctions d’agrégation comme SQL AVG(), SQL COUNT() ou SUM()
. Vous pouvez découvrir cette interaction dans l’exemple suivant. Pour cela, nous étendons le tableau ci-dessus et ajoutons une colonne pour le montant de la commande en euros. Le tableau se présente maintenant comme suit :
Numéro de client | Nom | Numéro de commande | Montant de la commande |
---|---|---|---|
1326 | Berron | 00451 | 300 |
1288 | Froissy | 00000 | NULL |
1262 | Sulis | 00318 | 100 |
Si nous voulons remplacer la valeur NULL par 100 et ensuite déterminer la valeur totale de toutes les commandes, nous utilisons la fonction SUM()
. Le code est le suivant :
SELECT SUM(ISNULL(Montant de la commande, 100))
FROM Commandes;
sqlVoici la sortie :
500
sqlLe système remplace la valeur NULL par 100 et ajoute donc 300 + 100 + 100.
Alternatives à SQL ISNULL()
Il existe d’autres options qui ressemblent à SQL ISNULL()
et qui sont classées parmi les fonctions dites NULL. Il s’agit de SQL COALESCE()
, SQL IFNULL()
et SQL NVL()
. De plus, celles-ci vérifient si une valeur est NULL et peuvent ensuite l’échanger avec une valeur de remplacement.
Choisissez le serveur qui correspond à vos besoins ! Avec le serveur d’hébergement SQL de IONOS, vous avez non seulement le choix entre MSSQL, MySQL et MariaDB, mais vous bénéficiez également d’un conseil personnalisé, de solides fonctions de sécurité et de performances de premier ordre.