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 :
CASEexpressionWHENvalueTHENresult[WHEN...] [ELSEresult] END
Voici une instruction CASE recherchée utilisée pour évaluer chaque condition :
CASE WHENboolean conditionTHENresult[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