COALESCE pour les NULL
Fait partie de la section Au-delà des bases du Journey SQL de Coddy. Leçon 3 sur 27.
COALESCE renvoie 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 claire de fournir une valeur de repli dans une requête, sans avoir besoin de CASE.
Utilisations courantes :
- Afficher
0au lieu deNULLavec unLEFT JOIN:COALESCE(SUM(amount), 0) - Choisir le premier champ facultatif non vide :
COALESCE(mobile, home, work)
Défi
FacileTables et colonnes disponibles :
users:id,display_name,orders:user_id,amount
Renvoyez une ligne par utilisateur avec :
idlabel:display_names'il est défini, sinonemail, sinon'unknown'total_spent: somme desamountdes commandes de l'utilisateur ; les utilisateurs sans commande doivent afficher0(et nonNULL)
Triez par id. Indice : un LEFT JOIN de users vers orders, associé à COALESCE(SUM(...), 0), gère les lignes manquantes.
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
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
1Logique conditionnelle
CASE WHENCASE dans ORDER BYCOALESCE pour les NULLNULLIF et IIFRécapitulatif - PrésenceEntraînez-vous par vous-même : Playground SQL