SQL ISNULL()

Dans le langage SQL la fonction ISNULL() peut s’avérer utile pour traiter des résultats qui possèdent des données nulles. Attention toutefois, cette fonction s’utilise différemment selon le système de gestion de base de données :

  • MySQL : la fonction ISNULL() prend un seul paramètre et permet de vérifier si une données est nulle
  • SQL Server : la fonction ISNULL() prend 2 paramètres et sert à afficher la valeur du 2ème paramètre si le premier paramètre est null. Cette même fonctionnalité peut être effectuée par d’autres systèmes de gestion de base de données d’une manière différente :
    • MySQL : il faut utiliser la fonction IFNULL()
    • PostgreSQL : il faut utiliser la fonction COALESCE()
    • Oracle : il faut utiliser la fonction NVL()

Syntaxe

Fonction ISNULL() de MySQL

L’utilisation de la fonction SQL peut s’utiliser dans une requête SQL facilement. Les requête suivantes sont des exemples typique de l’utilisation de cette fonction et de la valeur qu’elle retourne selon les cas.

SELECT ISNULL(NULL); -- retourne 1
SELECT ISNULL(3*3); -- retourne 0
SELECT ISNULL(3/0); -- retourne 1

Fonction ISNULL() de SQL Server

La fonction ISNULL() de SQL Server s’utilise quant à elle grâce à 2 paramètres qui peuvent s’utiliser dans des requêtes SQL telles que celle ci-dessous :

SELECT ISNULL(1,0); -- le résultat sera : 1
SELECT ISNULL(NULL,10); -- le résultat sera : 10
SELECT ISNULL(1/0,10); -- le résultat sera : 10
SELECT ISNULL(1/0,'oui'); -- le résulta sera : 'oui'

Ces exemples démontre bien que si la première valeur est nulle, ce sera la valeur du 2ème paramètre qui sera utilisé.

Exemple

Pour illustrer la fonction ISNULL() nous pouvons imaginer une application qui contient un dictionnaire de mot associer à un compteur qui comptabilise le nombre d’apparition de chaque mot-clé.

Table “dictionnaire” :

idmotcompteur
1pourquoi4
2commentNULL
3quiNULL
4quoi2

Fonction ISNULL() de MySQL

Imaginons que l’ont souhaite afficher uniquement les résultats où le compteur n’a pas compter le nombre d’apparition d’un mot, il serait possible d’utiliser la clause “IS NULL” mais il est aussi possible d’utiliser la fonction ISNULL() et de vérifier si le résultat est égal à 1.

SELECT *
FROM dictionnaire
WHERE ISNULL(compteur) = 1

Le résultat de cette requête SQL sera le tableau suivant :

idmotcompteur
2commentNULL
3quiNULL

Dans ce résultat il est possible de voir clairement que seul les lignes où le compteur vaut NULL sont retournée.

Fonction ISNULL() de SQL Server

Supposons que l’ont souhaite afficher la valeur du compteur et remplacer la valeur NULL par zéro, il est possible d’utiliser la requête SQL suivante :

SELECT id, mot, compteur, ISNULL(compteur, 0)
FROM dictionnaire

Le résultat de cette requête sera le suivant :

idmotcompteurIFNULL(compteur, 0)
1pourquoi44
2commentNULL0
3quiNULL0
4quoi22

Ces résultat démontre l’efficacité d’une telle fonction pour éviter d’obtenir des résultats NULL et ainsi s’assurer d’une potentielle compatibilité avec un système qui accepte uniquement des valeurs numériques.

Partager