

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
<a name="s3-select-sql-reference-conditional"></a>

**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](https://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/) 

Amazon S3 Select prend en charge les fonctions conditionnelles suivantes.

**Topics**
+ [CASE](#s3-select-sql-reference-case)
+ [COALESCE](#s3-select-sql-reference-coalesce)
+ [NULLIF](#s3-select-sql-reference-nullif)

## CASE
<a name="s3-select-sql-reference-case"></a>

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
<a name="s3-select-sql-reference-case-syntax"></a>

**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
<a name="s3-select-sql-reference-case-examples"></a>

**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
<a name="s3-select-sql-reference-coalesce"></a>

`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
<a name="s3-select-sql-reference-coalesce-syntax"></a>

```
COALESCE ( expression, expression, ... )
```

### Parameters
<a name="s3-select-sql-reference-coalesce-parameters"></a>

 *`expression`*   
Expression cible sur laquelle la fonction opère.

### Exemples
<a name="s3-select-sql-reference-coalesce-examples"></a>

```
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
<a name="s3-select-sql-reference-nullif"></a>

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
<a name="s3-select-sql-reference-nullif-syntax"></a>

```
NULLIF ( expression1, expression2 )
```

### Parameters
<a name="s3-select-sql-reference-nullif-parameters"></a>

 `expression1, expression2`   
Expressions cible sur lesquelles la fonction opère.

### Exemples
<a name="s3-select-sql-reference-nullif-examples"></a>

```
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
```