L'expression CASE est le "if/else" du langage SQL. Elle permet d'évaluer une liste de conditions et de renvoyer une valeur spécifique dès que l'une d'elles est remplie, offrant une grande flexibilité pour traiter vos données sans modifier la structure de votre base.
Étape 1 — Comprendre la syntaxe SQL CASE
Le fonctionnement de CASE repose sur une évaluation séquentielle : SQL teste les conditions de haut en bas et s'arrête à la première valeur vraie trouvée.
CASE
WHEN condition_1 THEN resultat_1
WHEN condition_2 THEN resultat_2
ELSE resultat_par_defaut
END
En résumé : Si aucune condition n'est remplie et qu'aucun ELSE n'est précisé, SQL renvoie automatiquement NULL.
Étape 2 — Classifier des données dynamiquement
Imaginons une table users contenant une colonne age. Avec CASE, nous pouvons créer une colonne virtuelle status pour catégoriser les utilisateurs sans toucher aux données sources.
SELECT name, age,
CASE
WHEN age < 18 THEN 'Enfant'
WHEN age >= 18 AND age < 65 THEN 'Adulte'
ELSE 'Senior'
END AS status
FROM users;
Résultat attendu : Une nouvelle colonne status affiche 'Enfant', 'Adulte' ou 'Senior' selon la valeur de l'âge pour chaque ligne.
Étape 3 — Calculer des prix avec taxes personnalisées
L'un des usages les plus fréquents consiste à appliquer des règles de calcul différentes selon une catégorie, comme pour l'application d'un taux de TVA différencié sur des produits.
SELECT name, category,
CASE
WHEN category = 'livre' THEN price * 1.05
WHEN category = 'vêtement' THEN price * 1.20
ELSE price * 1.30
END AS prix_ttc
FROM products;
Résultat attendu : La colonne prix_ttc contiendra le montant final calculé dynamiquement en fonction de la catégorie du produit.
Récapitulatif : les points clés
- L'ordre compte : SQL arrête l'évaluation dès la première condition vraie.
- Sécurité : Utilisez toujours
ELSEpour éviter des résultatsNULLimprévus. - Polyvalence :
CASEfonctionne dansSELECT,WHERE, et même dans unORDER BY.
Par carabde : 16 mai 2026 | Mis à jour le 9 juin 2026