

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Funzioni condizionali
<a name="s3-select-sql-reference-conditional"></a>

**Importante**  
Amazon S3 Select non è più disponibile per i nuovi clienti. I clienti esistenti di Amazon S3 Select possono continuare a utilizzare la funzionalità come di consueto. [Ulteriori informazioni](https://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/) 

Amazon S3 Select supporta le seguenti funzioni condizionali.

**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'espressione `CASE` è un'espressione condizionale, simile alle istruzioni `if/then/else` presenti in altre lingue. `CASE` è utilizzata per specificare un risultato quando ci sono condizioni multiple. Esistono due tipi di espressioni `CASE`: semplici e ricercate.

Nelle espressioni `CASE` semplici, un'espressione viene confrontata con un valore. Quando viene trovata una corrispondenza, viene applicata l'azione specificata nella clausola `THEN`. Se non viene trovata una corrispondenza, viene applicata l'azione nella clausola `ELSE`.

Nelle espressioni `CASE` cercate, ogni `CASE` viene valutata in base a un'espressione booleana e l'istruzione `CASE` restituisce la prima `CASE` corrispondente. Se non vengono trovate corrispondenze `CASE` tra le clausole `WHEN`, viene restituita l'operazione nella clausola `ELSE`.

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

**Nota**  
Attualmente Amazon S3 Select non supporta `ORDER BY` o query che contengono nuove righe. Assicurati di utilizzare query senza interruzioni di riga.

Quella che segue è una semplice dichiarazione `CASE`  che viene utilizzata per soddisfare le condizioni:

```
CASE expression WHEN value THEN result [WHEN...] [ELSE result] END					
```

Di seguito è disponibile una  dichiarazione `CASE` ricercata che viene utilizzata per valutare ogni condizione:

```
CASE WHEN boolean condition THEN result [WHEN ...] [ELSE result] END					
```

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

**Nota**  
Se utilizzi la console Amazon S3 per eseguire i seguenti esempi e il file CSV contiene una riga di intestazione, seleziona **Exclude the first line of CSV data (Escludi la prima riga di dati CSV)**. 

**Esempio 1:** utilizza una semplice espressione `CASE` per sostituire `New York City` con `Big Apple` in una query. Sostituire tutti gli altri nomi di città con `other`.

```
SELECT venuecity, CASE venuecity WHEN 'New York City' THEN 'Big Apple' ELSE 'other' END FROM S3Object;
```

Risultato della query: 

```
venuecity        |   case
-----------------+-----------
Los Angeles      | other
New York City    | Big Apple
San Francisco    | other
Baltimore        | other
...
```

**Esempio 2:** utilizza un'espressione `CASE` con ricerca per assegnare numeri di gruppo in base al valore `pricepaid` per le vendite di biglietti singoli:

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

Risultato della query: 

```
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` valuta gli argomenti in ordine e restituisce il primo valore non sconosciuto, ovvero il primo non nullo o non mancante. Questa funzione non propaga valori null e mancanti.

### Sintassi
<a name="s3-select-sql-reference-coalesce-syntax"></a>

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

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

 *`expression`*   
L'espressione di destinazione su cui viene eseguita la funzione.

### Esempi
<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>

Date due espressioni, `NULLIF` restituisce `NULL` se le due espressioni restituiscono lo stesso valore. In caso contrario, restituisce il risultato della valutazione della prima espressione.

### Sintassi
<a name="s3-select-sql-reference-nullif-syntax"></a>

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

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

 `expression1, expression2`   
Le espressioni di destinazione su cui viene eseguita la funzione.

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