logo oujood
🔍

SQL CASE : retourner des valeurs conditionnelles dans vos requêtes

Maîtrisez l'expression CASE pour transformer, filtrer et calculer vos données à la volée directement dans vos instructions SQL.

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.

  📋 Copier le code

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.

  📋 Copier le code

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 ELSE pour éviter des résultats NULL imprévus.
  • Polyvalence : CASE fonctionne dans SELECT, WHERE, et même dans un ORDER BY.

Par carabde : 16 mai 2026 | Mis à jour le 9 juin 2026