Lorsque vous désirez effectuer un test dans une requête, MySQL vous offre également une syntaxe permettant de réagir selon la valeur d'un champ donné.
Avec cette syntaxe, on n'entrera pas une condition (pouvant être évaluée à vrai ou à faux) mais plutôt une valeur qui sera comparée à la valeur du champ.
...
CASE nom_champ
WHEN 'valeur_a' THEN 'valeur_si_nom_champ_vaut_valeur_a'
WHEN 'valeur_b' THEN 'valeur_si_nom_champ_vaut_valeur_b'
ELSE 'valeur_si_nom_champ_ne_vaut_ni_a_ni_b'
END
...
Remarquez qu'avec cette syntaxe, on doit vérifier si la valeur d'un champ est égale à une valeur spécifiée. On ne peut pas travailler avec les autres opérateurs de comparaison.
Ex :
SELECT id, CASE etat
WHEN 'T' THEN 'Terminé'
WHEN 'EC' THEN 'En cours'
ELSE 'À faire'
END AS etat
FROM lignesfactures;
Attention : cette syntaxe ne permet pas de travailler avec des valeurs nulles. Si tel est votre besoin, vous devrez travailler avec la syntaxe qui vérifie une condition complète (voir fiche précédente).
▼Publicité