Espressione condizionale CASE - Amazon Redshift

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

Espressione condizionale 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. Usa CASE quando un'espressione SQL è valida, ad esempio in un comando SELECT.

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 tra le clausole WHEN, viene restituita l'operazione nella clausola ELSE.

Sintassi

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 condition THEN result [WHEN ...] [ELSE result] END

Argomenti

espressione

Un nome di colonna o qualsiasi espressione valida.

value

Valore con cui viene confrontata l'espressione, ad esempio una costante numerica o una stringa di caratteri.

result

Il valore o espressione di destinazione che viene restituito quando viene valutata un'espressione o una condizione booleana. I tipi di dati di tutte le espressioni dei risultati devono essere convertibili in un singolo tipo di output.

condizione

Un'espressione booleana che restituisce true o false. Se la condizione è true, il valore dell'espressione CASE è il risultato che segue la condizione e il resto dell'espressione CASE non viene elaborato. Se la condizione è false, vengono valutate tutte le clausole WHEN successive. Se nessun risultato della condizione WHEN è true, il valore dell'espressione CASE è il risultato della clausola ELSE. Se la clausola ELSE viene omessa e nessuna condizione è true, il risultato è null.

Esempi

Gli esempi seguenti utilizzano la tabella VENUE e la tabella SALES dai dati di esempio di TICKIT. Per ulteriori informazioni, consulta Database di esempio.

Utilizzare una semplice espressione CASE per sostituire New York City con Big Apple in una query sulla tabella VENUE. Sostituire tutti gli altri nomi di città con other.

select venuecity, case venuecity when 'New York City' then 'Big Apple' else 'other' end from venue order by venueid desc; venuecity | case -----------------+----------- Los Angeles | other New York City | Big Apple San Francisco | other Baltimore | other ...

Utilizzare un'espressione CASE ricercata per assegnare numeri di gruppo in base al valore PRICEPAID per le vendite di biglietti singoli:

select pricepaid, case when pricepaid <10000 then 'group 1' when pricepaid >10000 then 'group 2' else 'group 3' end from sales order by 1 desc; pricepaid | case ----------+--------- 12624 | group 2 10000 | group 3 10000 | group 3 9996 | group 1 9988 | group 1 ...