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.

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

La syntaxe de la fonction

Le fonctionnement de SQL ISNULL() est assez simple à appréhender :

ISNULL(expression, valeur de remplacement);
sql

La 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');
sql

Dans ce cas, la sortie est la suivante :

Ceci est la valeur de remplacement
sql

Dans 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');
sql

Nous obtenons donc cette sortie :

Ceci est l’expression réelle
sql

Exemple 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;
sql

Si 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;
sql

Voici la sortie :

500
sql

Le 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.

Conseil

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.

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