CASE semplice consente di restituire un risultato in base al valore di una singola espressione di input. Puoi definire un risultato predefinito se nessuno dei valori di confronto corrisponde.
Contenuti di questo articolo:Esempio
Fornisci link personalizzati per i clienti premium:
CASE Premium Status
WHEN "Platinum" THEN CONCAT(Site URL, "platinum_welcome.html")
WHEN "Gold" THEN CONCAT(Site URL, "gold_welcome.html")
WHEN "Silver" THEN CONCAT(Site URL, "silver_welcome.html")
ELSE CONCAT(Site URL, "welcome.html")
END
Come funziona CASE semplice
Un'espressione CASE semplice è composta dai seguenti elementi:
- La parola chiave CASE, seguita da un'espressione di input.
- WHEN: il valore con cui confrontare l'espressione di input. Se il valore equivale all'espressione di input, questa clausola è true. Puoi avere più clausole WHEN in una singola espressione CASE.
- THEN: il risultato da restituire se la condizione della clausola WHEN è true. Nell'espressione CASE deve essere presente una clausola THEN per ogni clausola WHEN.
- ELSE. (Facoltativo) Se nessuna delle condizioni della clausola WHEN è true, CASE restituisce il valore nella clausola ELSE o
NULL
se non viene specificata alcuna clausola ELSE. - La parola chiave END.
CASE valuta ogni clausola WHEN successiva e restituisce il primo risultato in cui la condizione è true. Eventuali clausole WHEN rimanenti e il risultato di ELSE non vengono valutati. Se tutte le condizioni WHEN sono false o NULL, CASE restituisce il risultato ELSE. Se non è presente alcuna clausola ELSE, CASE restituisce NULL.
Sintassi
CASE input_expression
WHEN expression_to_match THEN result
[WHEN expression_to_match THEN result]
[...]
[ELSE else_result]
END
Parametri
input_expression
L'espressione da valutare. Puoi utilizzare qualsiasi espressione valida come input_expression
.
WHEN expression_to_match
La clausola WHEN confronta expression_to_match
con input_expression
e restituisce true se i due sono uguali o false in caso contrario. Nella clausola WHEN puoi utilizzare qualsiasi espressione valida.
Risultato THEN
A ciascuna clausola WHEN deve corrispondere una clausola THEN, che specifica i risultati da restituire se la condizione è true. Se sono presenti più clausole WHEN, l'espressione CASE restituisce il risultato per la prima clausola true. Nella clausola THEN puoi utilizzare qualsiasi espressione valida.
Note
Tutte le clausole THEN in un'espressione CASE devono restituire lo stesso tipo di risultato.
Ad esempio, se la prima clausola THEN restituisce testo, anche le clausole THEN aggiuntive devono restituire testo.
ELSE else_result
La clausola ELSE facoltativa specifica un risultato predefinito, che viene restituito nel caso in cui nessuna delle clausole WHEN sia true. Se un'espressione CASE non ha clausole ELSE e nessuna delle clausole WHEN è true, l'istruzione restituisce NULL
. Un'espressione CASE può avere solo una clausola ELSE.
Un altro esempio
Sostituisci un valore con un altro valore. Ad esempio, puoi semplificare la lettura dei dati sostituendo i codici con nomi più intuitivi:
CASE Payment Type
WHEN "CC" THEN "Credit Card"
WHEN "D" THEN "Debit Card"
WHEN "GC" THEN "Gift Card"
WHEN "UNK" THEN "Unknown"
ELSE Payment Type
END