CASE WHEN
Fait partie de la section Au-delà des bases du Journey SQL de Coddy. Leçon 1 sur 27.
Une expression CASE est un if/else if/else pour SQL. Elle se trouve à l’intérieur de SELECT (ou de ORDER BY, ou de WHERE) et produit une valeur par ligne.
SELECT name,
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 75 THEN 'B'
WHEN score >= 60 THEN 'C'
ELSE 'F'
END AS grade
FROM studentsChaque WHEN est vérifié de haut en bas ; la première correspondance l’emporte. Le ELSE est facultatif. Sans lui, les lignes sans correspondance obtiennent NULL.
Terminez toujours par END et donnez un nom à la colonne avec AS.
Défi
FacileTables et colonnes disponibles :
employees:id,name,department,salary
Pour chaque employé, renvoyez ses colonnes name, department et une colonne tier construite ainsi :
'partner'lorsquesalary >= 150000(quel que soit le département)'senior'lorsquedepartment = 'eng'etsalary >= 100000'mid'lorsquesalary >= 60000'entry'dans les autres cas
Triez par salary dans l’ordre décroissant. Notez que l’ordre des branches WHEN est important : la première correspondance l’emporte.
Essayez vous-même
SELECT name, department,
-- niveau avec plusieurs branches WHEN qui mélangent salary et department
FROM employees
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Au-delà des bases
1Logique conditionnelle
CASE WHENCASE dans ORDER BYCOALESCE pour les NULLNULLIF et IIFRécapitulatif - PrésenceEntraînez-vous par vous-même : Playground SQL