Funzioni condizionali - Amazon Simple Storage Service

Funzioni condizionali

Amazon S3 Select supporta le seguenti funzioni condizionali.

CASE

L'espressione CASE è un'espressione condizionale, simile alle istruzioni if (se)/then (quindi)/else (altro) trovate 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 CASE corrispondenti tra le clausole WHEN, viene restituita l'azione 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.

Semplice istruzione CASE usata per abbinare le condizioni:

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

Istruzione CASE ricercata usata 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 altri.

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

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

espressione

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