SQL COALESCE : ce qu’il faut savoir

La fonction SQL COALESCE() est utilisée pour déterminer la première valeur d’une liste qui n’est pas NULL. Il s’agit en quelque sorte d’une version raccourcie de l’instruction CASE.

Qu’est-ce que SQL COALESCE() ?

Le mot-clé NULL dans SQL est utilisé pour les données qui n’ont pas de valeur. Un tel cas se présente par exemple lorsque vous ne connaissez pas (encore) une certaine valeur dans une table et que vous ne remplissez donc pas le champ correspondant. Cela ne signifie pas nécessairement que le champ correspondant n’a pas de valeur, mais potentiellement que vous ne la connaissez pas. Ces valeurs NULL ne sont certes pas nuisibles à première vue, mais si elles s’accumulent dans une base de données, ces dernières peuvent devenir confuses. La fonction SQL COALESCE() est utilisée pour afficher la première valeur d’une liste qui n’est pas NULL.

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

SQL COALESCE() : syntaxe et conditions préalables

La syntaxe de SQL COALESCE() est très simple. Elle se présente comme suit :

COALESCE(valeur1, valeur2, …, n)
sql

Vous avez besoin d’au moins deux arguments. Si tous les arguments sont à NULL, la fonction retournera également NULL.

SQL COALESCE() : fonctionnement et exemples

Vous pouvez rapidement comprendre le fonctionnement de base à l’aide d’un exemple simple. Dans le code suivant, nous saisissons différents arguments et les faisons vérifier à l’aide de la commande SQL SELECT.

SELECT COALESCE(NULL, NULL, NULL, 17, 49, NULL, 13, 15, 14, 15);
sql

Dans ce cas, le résultat est « 17 », car c’est la première valeur qui n’est pas NULL.

SQL COALESCE() en combinaison avec d’autres fonctions

La fonction est nettement plus utile si vous l’exécutez en combinaison avec d’autres actions. Pour cela, imaginons une table appelée « Employés ». Celle-ci contient les colonnes « Nom », « Ville » et « Date de naissance ». Elle ressemble à ceci :

Nom Ville Date de naissance
Bruno Craillon Clermont-Ferrand 10/04/1967
Sabine Cholet Aix-en-Provence 27/07/1989
Sébastien Schmidt Mulhouse
Martin Breton Aix-en-Provence 14/04/2001
Sarah Tamion 02/12/2005

Deux des inscriptions ne sont pas déposées ici. Certes, Sébastien Schmidt a une date de naissance et Sarah Tamion un lieu de résidence, mais nous ne les connaissons pas à ce moment-là. Si nous voulons déterminer rapidement les champs vides, nous pouvons utiliser la fonction SQL COALESCE(). Voici le code correspondant :

SELECT Nom,
COALESCE(Ville, 'À DEMANDER') AS Ville,
COALESCE(Date de naissance, 'À DEMANDER') AS Date de naissance
FROM Employés;
sql

La sortie correspondante ressemble désormais à ceci :

Nom Ville Date de naissance
Bruno Craillon Clermont-Ferrand 10/04/1967
Sabine Cholet Aix-en-Provence 27/07/1989
Sébastien Schmidt Mulhouse À DEMANDER
Martin Breton Aix-en-Provence 14/04/2001
Sarah Tamion À DEMANDER 02/12/2005

Les fonctions similaires à SQL COALESCE()

SQL COALESCE() ressemble sur de nombreux points à l’instruction SQL CASE ; ce n’est donc qu’une sorte de version raccourcie de cette option de requête. Le code CASE ressemble à ceci :

CASE
WHEN valeur1 IS NOT NULL THEN valeur1
WHEN valeur2 IS NOT NULL THEN valeur2
WHEN ... IS NOT NULL THEN ..
ELSE n
END
sql

La fonction ISNULL présente des similitudes avec SQL COALESCE(), expliquée dans cet article. Cependant, contrairement à COALESCE, ISNULL n’est évaluée qu’une seule fois et ne suit pas les règles de l’instruction CASE.

Conseil

Un serveur qui s’adapte à vos besoins : avec le serveur d’hébergement SQL de IONOS, vous utilisez MSSQL, MySQL ou MariaDB et profitez d’un conseiller à votre écoute, de mécanismes de sécurité solides et de performances exceptionnelles !

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