Expression conditionnelle CASE - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Expression conditionnelle CASE

L’expression CASE est une expression conditionnelle similaire aux instructions if/then/else trouvées dans d’autres langues. L’expression CASE est utilisée pour spécifier un résultat lorsqu’il y a plusieurs conditions. Utilisez CASE là où l’utilisation d’une expression SQL est valide, par exemple dans une commande SELECT.

Il existe deux types d’expressions CASE : simple et recherchée.

  • Dans les expressions CASE simples, une expression est comparée à une valeur. Lorsqu’une correspondance est trouvée, l’action spécifiée dans la clause THEN est appliquée. Si aucune correspondance n’est trouvée, l’action de la clause ELSE est appliquée.

  • Dans les expressions CASE recherchées, chaque expression CASE est évaluée en fonction d’une expression booléenne, et l’instruction CASE renvoie la première expression CASE correspondante. Si aucune correspondance n’est trouvée parmi les clauses WHEN, l’action contenue dans la clause ELSE est renvoyée.

Syntaxe

Instruction CASE simple utilisée pour mettre en correspondance des conditions :

CASE expression WHEN value THEN result [WHEN...] [ELSE result] END

Instructions CASE recherchées utilisées pour évaluer chaque condition :

CASE WHEN condition THEN result [WHEN ...] [ELSE result] END

Arguments

expression

Nom de la colonne ou n’importe quelle expression valide.

valeur

Valeur à laquelle l’expression est comparée, par exemple une constante numérique ou une chaîne de caractères.

result

Valeur ou expression cible qui est renvoyée lorsqu’une expression ou une condition booléenne est évaluée. Les types de données de toutes les expressions de résultat doivent pouvoir être convertis en un seul type de sortie.

condition

Expression booléenne qui prend la valeur true ou false. Si la condition a la valeur true, la valeur de l’expression CASE est le résultat qui suit la condition, et le reste de l’expression CASE n’est pas traité. Si la condition a la valeur false, les clauses WHEN suivantes sont évaluées. Si aucune condition WHEN n’a la valeur true en résultat, la valeur de l’expression CASE est le résultat de la clause ELSE. Si la clause ELSE est omise et qu’aucune condition n’a la valeur true, le résultat est null.

Exemples

Les exemples suivants utilisent la table VENUE et la table SALES de l’exemple de données TICKIT. Pour plus d’informations, consultez Exemple de base de données.

Utilisez une expression CASE simple pour remplacer New York City par Big Apple dans une requête sur la table de VENUE. Remplacer tous les autres noms de villes par other.

select venuecity, case venuecity when 'New York City' then 'Big Apple' else 'other' end from venue order by venueid desc; venuecity | case -----------------+----------- Los Angeles | other New York City | Big Apple San Francisco | other Baltimore | other ...

Utiliser une expression CASE recherchée pour affecter des numéros de groupes basés sur la valeur PRICEPAID pour les vente de billets individuelles :

select pricepaid, case when pricepaid <10000 then 'group 1' when pricepaid >10000 then 'group 2' else 'group 3' end from sales order by 1 desc; pricepaid | case ----------+--------- 12624 | group 2 10000 | group 3 10000 | group 3 9996 | group 1 9988 | group 1 ...