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.
- 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)
sqlVous 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);
sqlDans 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;
sqlLa 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
sqlLa 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.
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 !