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: 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 clause WHEN compare input_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 clause WHEN doit contenir une clause THEN correspondante, qui indique les résultats à renvoyer si la condition est "true". S'il existe plusieurs clauses WHEN, l'instruction CASE renvoie le résultat de la première clause "true".
  • else_result (facultatif) : n'importe quel champ ou expression valide. La clause ELSE else_result spécifie un résultat par défaut pour l'instruction CASE. Cette clause est renvoyée si aucune des clauses WHEN n'est "true". Si une instruction CASE ne comporte aucune clause ELSE et qu'aucune des clauses WHEN n'est vraie, l'instruction CASE renvoie NULL.

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 laquelle input_expression est comparée. Si la valeur est égale à input_expression, cette clause est "true". Une même instruction CASE peut avoir plusieurs clauses WHEN.
  • THEN : résultat à renvoyer si la condition de la clause WHEN est "true". Une instruction CASE doit contenir une clause THEN pour chaque clause WHEN.
  • ELSE : facultatif. Si aucune des conditions de la clause WHEN n'est "true", CASE renvoie la valeur de la clause ELSE ou NULL si aucune clause ELSE 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