Menu
Coddy logo textTech

COALESCE pour les NULLs

Fait partie de la section Au-delà des bases du Journey SQL de Coddy — leçon 3 sur 27.

COALESCE retourne le premier argument qui n'est pas NULL :

COALESCE(nickname, first_name, 'Anonymous')

Lit de gauche à droite et s'arrête au premier élément non nul. C'est la manière la plus propre de fournir une valeur de repli dans une requête, sans avoir besoin de CASE.

Utilisations courantes :

  • Afficher 0 au lieu de NULL d'une LEFT JOIN : COALESCE(SUM(amount), 0)
  • Choisir le premier champ optionnel non vide : COALESCE(mobile, home, work)
challenge icon

Défi

Facile

Tables et colonnes disponibles :

  • <strong>users</strong> : <strong>id</strong>, <strong>display_name</strong>, <strong>email</strong>
  • <strong>orders</strong> : <strong>user_id</strong>, <strong>amount</strong>

Retournez une ligne par utilisateur avec :

  • id
  • label : display_name s'il est défini, sinon email, sinon 'unknown'
  • total_spent : somme des amount des commandes de l'utilisateur ; les utilisateurs sans commande doivent afficher 0 (pas NULL)

Triez par id. Indice : un LEFT JOIN de users vers orders plus COALESCE(SUM(...), 0) gère les lignes manquantes.

Aide-mémoire

COALESCE retourne le premier argument non-NULL :

COALESCE(nickname, first_name, 'Anonymous')

Utilisations courantes :

  • Valeur d'affichage de secours : COALESCE(mobile, home, work)
  • Remplacer NULL pour les agrégats de LEFT JOIN : COALESCE(SUM(amount), 0)

Essayez vous-même

SELECT u.id,
       -- label via COALESCE
       -- total_spent via COALESCE(SUM(...), 0)
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id
ORDER BY u.id
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Au-delà des bases