Fonctions conditionnelles - Amazon Simple Storage Service

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 WHEN value THEN result [WHEN...] [ELSE result] END

Voici une instruction CASE recherchée utilisée pour évaluer chaque condition :

CASE WHEN boolean condition THEN result [WHEN ...] [ELSE result] 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