Skip to content

3.5 — Catégorisation intelligente avec CASE

Ce que vous allez apprendre

  • Comment utiliser l'instruction CASE en SQL pour regrouper/catégoriser selon des conditions
  • L'équivalent des fonctions SI/SI.MULTIPLE d'Excel

D'Excel à SQL : regroupement conditionnel

Dans Excel, vous utilisez SI ou SI.MULTIPLE pour regrouper/catégoriser. En SQL, utilisez CASE.

Excel :
=SI(Montant > 100; "Large order"; "Small order")

SQL :

sql
SELECT Amount,
       CASE WHEN Amount > 100 THEN 'Large order'
            ELSE 'Small order' END AS Order_Size
FROM sales;
  • CASE WHEN ... THEN ... ELSE ... END permet de tester des conditions.
  • AS Amount_Category renomme la nouvelle colonne.

Catégorisation à plusieurs conditions

Excel :
=SI.MULTIPLE(Montant > 200; "Very large"; Montant > 100; "Large"; VRAI; "Small")

SQL :

sql
SELECT Amount,
       CASE WHEN Amount > 200 THEN 'Very large'
            WHEN Amount > 100 THEN 'Large'
            ELSE 'Small' END AS Order_Size
FROM sales;

Gestion des valeurs NULL avec CASE

Vous pouvez utiliser CASE pour gérer les valeurs manquantes (NULL) et fournir des valeurs par défaut, comme avec SI(ESTVIDE(...)) dans Excel.

Exemple : Remplacer les montants NULL par 0

sql
SELECT Product,
  CASE
    WHEN Amount IS NULL THEN 0
    ELSE Amount
  END AS Amount_Filled
FROM sales;
  • Si Amount est NULL, le résultat sera 0 ; sinon, il montre la valeur originale.

Astuce : Vous pouvez aussi utiliser la fonction COALESCE() pour fournir une valeur par défaut pour NULL :

sql
SELECT Product, COALESCE(Amount, 0) AS Amount_Filled
FROM sales;

Exemple : Catégoriser les montants NULL comme "Inconnu"

sql
SELECT Product, Amount,
  CASE
    WHEN Amount IS NULL THEN 'Unknown'
    WHEN Amount >= 100 THEN 'High'
    WHEN Amount >= 50 THEN 'Medium'
    ELSE 'Low'
  END AS Amount_Category
FROM sales;
- Si `Amount` est manquant, la catégorie sera "Inconnu".

Points clés

  • CASE permet de regrouper/catégoriser selon plusieurs conditions.
  • C'est l'équivalent SQL de SI/SI.MULTIPLE.
  • Idéal pour générer des étiquettes métier, des regroupements, etc.

Prochaine étape

Dans le prochain module, vous apprendrez l'analyse d'agrégation SQL (somme, compte, regroupement, etc.).