L'instruction CASE
simple renvoie un résultat basé sur la valeur d'une expression d'entrée unique ou sur un résultat par défaut si aucune des valeurs de comparaison ne correspond.
Voir aussi: SI.
Exemple d'utilisation
Remplacez les codes de paiement par des noms plus compréhensibles:
CASE Payment Type WHEN "CC" THEN "Credit Card" WHEN "DC" THEN "Debit Card" WHEN "GC" THEN "Gift Card" WHEN "CA" THEN "Cash" ELSE "Other" END
Syntaxe
CASE input_expression WHEN expression_to_match THEN result [WHEN expression_to_match THEN result] [...] [ELSE else_result] END
Paramètres
input_expression
: n'importe quel champ ou expression valide.- [
expression_to_match
: n'importe quel champ ou expression valide. La clauseWHEN
compareinput_expression
àinput_expression
et renvoie la valeur "true" si les deux expressions sont égales, ou la valeur "false" dans le cas contraire.]{#when-conditions} result
: n'importe quel champ ou expression valide. Chaque clauseWHEN
doit contenir une clauseTHEN
correspondante, qui indique les résultats à renvoyer si la condition est "true". S'il existe plusieurs clausesWHEN
, l'instructionCASE
renvoie le résultat de la première clause "true".else_result
(facultatif) : n'importe quel champ ou expression valide. La clauseELSE
else_result spécifie un résultat par défaut pour l'instructionCASE
. Cette clause est renvoyée si aucune des clausesWHEN
n'est "true". Si une instructionCASE
ne comporte aucune clauseELSE
et qu'aucune des clausesWHEN
n'est vraie, l'instructionCASE
renvoieNULL
.
Fonctionnement d'un CASE
simple
Une instruction CASE
simple comprend les éléments suivants:
- Le mot clé
CASE
, suivi d'une expression d'entrée. WHEN
: valeur avec laquelleinput_expression
est comparée. Si la valeur est égale àinput_expression
, cette clause est "true". Une même instructionCASE
peut avoir plusieurs clausesWHEN
.THEN
: résultat à renvoyer si la condition de la clauseWHEN
est "true". Une instructionCASE
doit contenir une clauseTHEN
pour chaque clauseWHEN
.ELSE
: facultatif. Si aucune des conditions de la clauseWHEN
n'est "true",CASE
renvoie la valeur de la clauseELSE
ouNULL
si aucune clauseELSE
n'est spécifiée.- Le mot clé
END
.
CASE
évalue successivement chaque clause WHEN
et renvoie le premier résultat pour lequel la condition est vraie. Les clauses WHEN
restantes et le résultat ELSE
ne sont alors pas évalués. Si toutes les conditions WHEN
sont "false" ou NULL
, CASE
renvoie le résultat ELSE
. Si aucune clause ELSE
n'est présente, NULL
est renvoyé.
Exemple
Pour fournir des liens personnalisés à vos clients Premium:
CASE Premium Status WHEN "Platinum" THEN CONCAT(Site URL, "platinum_welcome.html") WHEN "Gold" THEN CONCAT(Site URL, "gold_welcome.html") WHEN "Silver" THEN CONCAT(Site URL, "silver_welcome.html") ELSE CONCAT(Site URL, "welcome.html") END