CASE (simple)
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 : IF.
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 clauseWHENcompareinput_expressionàinput_expressionet 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 clauseWHENdoit contenir une clauseTHENcorrespondante, qui indique les résultats à renvoyer si la condition est "true". S'il existe plusieurs clausesWHEN, l'instructionCASErenvoie le résultat de la première clause "true".else_result(facultatif) : n'importe quel champ ou expression valide. La clause else_result deELSEspécifie un résultat par défaut pour l'instructionCASE. Cette clause est renvoyée si aucune des clausesWHENn'est "true". Si une instructionCASEne comporte aucune clauseELSEet qu'aucune des clausesWHENn'est "true", l'instructionCASErenvoie la valeurNULL.
Fonctionnement de 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_expressionest comparée. Si la valeur est égale àinput_expression, cette clause est "true". Une même instructionCASEpeut avoir plusieurs clausesWHEN.THEN: résultat à renvoyer si la condition de la clauseWHENest "true". Une instructionCASEdoit contenir une clauseTHENpour chaque clauseWHEN.ELSE: facultatif. Si aucune des conditions de la clauseWHENn'est "true",CASErenvoie la valeur de la clauseELSEouNULLsi aucune clauseELSEn'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 "true". Les clauses WHEN restantes et le résultat ELSE ne sont alors pas évalués. Si toutes les conditions WHEN sont fausses 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