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.
Fonctions conditionnelles
Important
Amazon S3 Select n’est plus disponible pour les nouveaux clients. Les clients existants d’Amazon S3 Select peuvent continuer à utiliser cette fonctionnalité comme d’habitude. En savoir plus
Amazon S3 Select prend en charge les fonctions conditionnelles suivantes.
CASE
L’expression CASE
est une expression conditionnelle similaire aux instructions if/then/else
trouvées dans d’autres langues. CASE
est utilisé pour spécifier un résultat lorsqu’il y a plusieurs conditions. 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 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 CASE
n’est trouvée parmi les clauses WHEN
, l’action contenue dans la clause ELSE
est renvoyée.
Syntaxe
Note
Actuellement, Amazon S3 Select ne prend pas en charge ORDER BY
ou les requêtes contenant de nouvelles lignes. Veillez à utiliser des requêtes sans saut de ligne.
Voici une instruction CASE
simple qui est utilisée pour faire correspondre les conditions :
CASE
expression
WHENvalue
THENresult
[WHEN...] [ELSEresult
] END
Voici une instruction CASE
recherchée utilisée pour évaluer chaque condition :
CASE WHEN
boolean condition
THENresult
[WHEN ...] [ELSEresult
] END
Exemples
Note
Si vous utilisez la console Amazon S3 pour exécuter les exemples suivants et que votre fichier CSV contient une ligne d’en-tête, sélectionnez Exclure la première ligne de données CSV.
Exemple 1 : utilisez une simple expression CASE
pour remplacer New York City
par Big Apple
dans une requête. Remplacer tous les autres noms de villes par other
.
SELECT venuecity, CASE venuecity WHEN 'New York City' THEN 'Big Apple' ELSE 'other' END FROM S3Object;
Résultat de la requête :
venuecity | case -----------------+----------- Los Angeles | other New York City | Big Apple San Francisco | other Baltimore | other ...
Exemple 2 : utilisez une expression CASE
recherchée pour affecter des numéros de groupes basés sur la valeur pricepaid
pour les ventes de billets individuels :
SELECT pricepaid, CASE WHEN CAST(pricepaid as FLOAT) < 10000 THEN 'group 1' WHEN CAST(pricepaid as FLOAT) > 10000 THEN 'group 2' ELSE 'group 3' END FROM S3Object;
Résultat de la requête :
pricepaid | case -----------+--------- 12624.00 | group 2 10000.00 | group 3 10000.00 | group 3 9996.00 | group 1 9988.00 | group 1 ...
COALESCE
COALESCE
évalue les arguments dans l’ordre et renvoie la première valeur non inconnue, c’est-à-dire la première valeur non nulle ou non manquante. Cette fonction ne propage pas les valeurs nulles ou manquantes.
Syntaxe
COALESCE (
expression
,expression
, ... )
Paramètres
-
expression
-
Expression cible sur laquelle la fonction opère.
Exemples
COALESCE(1) -- 1 COALESCE(null) -- null COALESCE(null, null) -- null COALESCE(missing) -- null COALESCE(missing, missing) -- null COALESCE(1, null) -- 1 COALESCE(null, null, 1) -- 1 COALESCE(null, 'string') -- 'string' COALESCE(missing, 1) -- 1
NULLIF
Pour deux expressions données, NULLIF
renvoie NULL
si les deux expressions ont la même valeur. Sinon, NULLIF
renvoie le résultat de l’évaluation de la première expression.
Syntaxe
NULLIF (
expression1
,expression2
)
Paramètres
-
expression1
,expression2
-
Expressions cible sur lesquelles la fonction opère.
Exemples
NULLIF(1, 1) -- null NULLIF(1, 2) -- 1 NULLIF(1.0, 1) -- null NULLIF(1, '1') -- 1 NULLIF([1], [1]) -- null NULLIF(1, NULL) -- 1 NULLIF(NULL, 1) -- null NULLIF(null, null) -- null NULLIF(missing, null) -- null NULLIF(missing, missing) -- null