Funzioni condizionali - Amazon Simple Storage Service

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

Amazon S3 Select supporta le seguenti funzioni condizionali.

CASE

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

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

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

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

COALESCE ( expression, expression, ... )

Parametri

expression

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

Esempi

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

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

NULLIF ( expression1, expression2 )

Parametri

expression1, expression2

Le espressioni di destinazione su cui viene eseguita la funzione.

Esempi

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