PaliSkill
← 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 END renvoie 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.
  • ELSE capture tous les cas non couverts par les WHEN pré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.