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
estNULL
, le résultat sera0
; 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.).