← SQL avancé
Leçon 1 / 9 — Chapitre 4: CASE WHEN et agrégation conditionnelle
Transformation conditionnelle : CASE WHEN
SELECT nom,
CASE
WHEN montant < 0 THEN 'remboursement'
ELSE 'achat'
END AS type_transaction
FROM clients;
CASE WHEN condition THEN valeur ... ELSE valeur_par_defaut END évalue les conditions dans l'ordre, et renvoie la valeur associée à la première condition vraie ; ELSE couvre tous les cas restants.
Avec plusieurs branches :
SELECT CASE
WHEN montant >= 100 THEN 'gros montant'
WHEN montant >= 0 THEN 'petit montant'
ELSE 'remboursement'
END
FROM clients WHERE id = 2;
À retenir :
CASE WHEN cond1 THEN val1 WHEN cond2 THEN val2 ELSE valdef ENDrenvoie la valeur de la première condition vraie.- Les conditions sont testées dans l'ordre d'écriture ; une fois une condition vraie trouvée, les suivantes ne sont plus évaluées.
ELSEcapture tous les cas non couverts par lesWHENprécédents.
À vous de jouer : ajoutez une branche WHEN montant = 0 THEN 'gratuit' et réfléchissez à son ordre par rapport aux autres conditions.
🔒
Continuez ce module
Débloquez les leçons restantes ainsi que l'attestation finale.
8 500 XOF / 12,96 € / 14,12 $
Débloquez les 87 leçons restantes de ce module
Pour vous communiquer où envoyer le paiement.
Moyen de paiement souhaité
Nous vous contactons pour le paiement — activé dès réception.