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