L'expression CASE simple vous permet de renvoyer un résultat en fonction de la valeur d'une expression d'entrée unique. Vous pouvez définir un résultat par défaut s'il n'y a aucune correspondance avec les valeurs de comparaison.
Cet article aborde les points suivants :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
Fonctionnement de CASE simple
Une expression CASE simple contient les éléments suivants :
- Le mot clé CASE, suivi d'une expression d'entrée.
- WHEN : valeur avec laquelle l'expression d'entrée est comparée. Si la valeur est égale à l'expression d'entrée, cette clause est vraie. Une expression CASE peut contenir plusieurs clauses WHEN.
- THEN : résultat à renvoyer si la condition de la clause WHEN est vraie. Une expression CASE doit contenir une clause THEN pour chaque clause WHEN.
- ELSE : clause facultative. Si aucune des conditions de la clause WHEN n'est vraie, CASE renvoie la valeur de la clause ELSE ou la valeur
NULL
si aucune clause ELSE n'est spécifiée. - Le mot clé END.
L'expression 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 fausses ou NULL, l'expression CASE renvoie le résultat ELSE. Si aucune clause ELSE n'est précisée, elle renvoie la valeur NULL.
Syntaxe
CASE input_expression
WHEN expression_to_match THEN result
[WHEN expression_to_match THEN result]
[...]
[ELSE else_result]
END
Paramètres
input_expression
L'expression à évaluer. input_expression
peut prend pour valeur n'importe quelle expression valide.
WHEN expression_to_match
La clause WHEN compare expression_to_match
à input_expression
et renvoie la valeur "true" si les deux expressions sont égales, ou la valeur "false" dans le cas contraire. Vous pouvez utiliser n'importe quelle expression valide dans la clause WHEN.
THEN result
Chaque clause WHEN doit contenir une clause THEN correspondante, qui indique la valeur à renvoyer si la condition est vraie. S'il existe plusieurs clauses WHEN, l'expression CASE renvoie le résultat de la première clause vraie. Vous pouvez utiliser n'importe quelle expression valide dans la clause THEN.
Remarques
Toutes les clauses THEN d'une expression CASE doivent renvoyer le même type de résultat.
Par exemple, si la première clause THEN renvoie une valeur textuelle, les autres clauses THEN doivent également renvoyer une valeur textuelle.
ELSE else_result
La clause facultative ELSE spécifie un résultat par défaut. Cette valeur est renvoyée si aucune des clauses WHEN n'est vraie. Si une expression CASE ne comporte aucune clause ELSE et qu'aucune des clauses WHEN n'est vraie, l'instruction renvoie la valeur NULL
. Une expression CASE ne peut contenir qu'une seule clause ELSE.
Autre exemple
Vous pouvez remplacer une valeur par une autre. Par exemple, vous pouvez améliorer la lisibilité de vos données en remplaçant les codes par des noms plus compréhensibles :
CASE Payment Type
WHEN "CC" THEN "Credit Card"
WHEN "D" THEN "Debit Card"
WHEN "GC" THEN "Gift Card"
WHEN "UNK" THEN "Unknown"
ELSE Payment Type
END