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 if/then/else instructions trouvées dans d'autres langages. 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 de plus amples informations, veuillez consulter 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 ...