CASE
Descrizione
CASE
è una funzione di riga che valuta ogni riga del set di dati in base a una o più condizioni di input e restituisce il risultato specificato quando le condizioni di input vengono soddisfatte.Sintassi
CASE
WHEN
input_condition
[AND
|OR
input_condition
]THEN
output_expression
[...] [ELSE
other_output_expression
] END
Valore restituito
Restituisce un valore per ogni riga dello stesso tipo dell'espressione di output. Tutte le espressioni di output devono restituire lo stesso tipo di campo.
Se sono presenti più espressioni di output che restituiscono tipi di campo diversi, sarà necessario racchiudere l'intero
CASE
in una delle funzioni di conversione del tipo di campo, ad esempio TO_INT
, per trasmettere in modo esplicito tutti i valori di output a un tipo di campo specifico.Parametri di input
- QUANDOinput_condition
- Sono obbligatori. IlWHENviene utilizzata per specificare una o più espressioni booleane (consultare gli operatori condizionali supportati). Se un valore di input soddisfa la condizione, viene applicata l'espressione di output. Le condizioni di input possono includere altre funzioni di riga nell'espressione, ma non possono contenere funzioni di riepilogo o espressioni di misura. È possibile utilizzareANDoORparole chiave per combinare più condizioni di input.
- THENoutput_expression
- Sono obbligatori. IlTHENviene utilizzata per specificare un'espressione di output quando vengono soddisfatte le condizioni specificate. Le espressioni di output possono includere altre funzioni di riga nell'espressione, ma non possono contenere funzioni di riepilogo o espressioni di misura.
- ELSEother_output_expression
- Facoltativo. IlELSEÈ possibile utilizzare la parola chiave per specificare un'espressione di output alternativa da utilizzare quando le condizioni specificate non vengono soddisfatte. Se unELSEl'espressione non è specificata,ELSE NULLè l'impostazione predefinita.
- FINE
- Sono obbligatori. Indica la fine diCASEelaborazione della funzione
Esempi
Convertire i valori nella colonna
età
in raggruppamenti basati su intervallo (binning):CASE WHEN [age] <= 25 THEN "0-25" WHEN [age] <= 50 THEN "26-50" ELSE "over 50"
END
Trasformare i valori nella colonna
del genere
da una stringa a un'altra:CASE WHEN [gender] = "M" THEN "Male" WHEN [gender] = "F" THEN
"Female" ELSE "Unknown" END
La colonna
veicolo
contiene i seguenti valori: camion, autobus, auto, scooter, vagone, bici, triciclo e moto. L'esempio seguente converte più valori nella colonna del veicolo
in un unico valore:CASE WHEN [vehicle] in ("bike","scooter","motorcycle") THEN "two-wheelers" ELSE
"other" END