Instruction MySQL CASE
La déclaration MySQL CASE
L' CASE
instruction passe par des conditions et renvoie une valeur lorsque la première condition est remplie (comme une instruction if-then-else). Ainsi, une fois qu'une condition est vraie, elle arrête de lire et renvoie le résultat. Si aucune condition n'est vraie, il renvoie la valeur dans la ELSE
clause.
S'il n'y a pas de ELSE
partie et qu'aucune condition n'est vraie, elle renvoie NULL.
Syntaxe CASE
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN
conditionN THEN resultN
ELSE result
END;
Base de données de démonstration
Vous trouverez ci-dessous une sélection de la table "OrderDetails" dans l'exemple de base de données Northwind :
OrderDetailID | OrderID | ProductID | Quantity |
---|---|---|---|
1 | 10248 | 11 | 12 |
2 | 10248 | 42 | 10 |
3 | 10248 | 72 | 5 |
4 | 10249 | 14 | 9 |
5 | 10249 | 51 | 40 |
Exemples de CAS MySQL
Le SQL suivant passe par les conditions et renvoie une valeur lorsque la première condition est remplie :
Exemple
SELECT OrderID, Quantity,
CASE
WHEN Quantity > 30
THEN 'The quantity is greater than 30'
WHEN Quantity = 30 THEN 'The
quantity is 30'
ELSE 'The quantity is under 30'
END AS QuantityText
FROM OrderDetails;
Le SQL suivant ordonnera les clients par ville. Cependant, si City est NULL, alors trier par Country :
Exemple
SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
WHEN City IS NULL THEN Country
ELSE City
END);