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à.
switch
switch
confronta una condition-expression con le etichette letterali, all'interno di un insieme di abbinamenti di etichette letterali e return-expression. Quindi restituisce la return-expression corrispondente alla prima etichetta letterale uguale alla condition-expression. Se nessuna etichetta è uguale a condition-expression, switch
restitusce la default-expression. Ogni return-expression e default-expression deve avere lo stesso tipo di dati.
Sintassi
switch(
condition-expression
,label-1
,return-expression-1
[,label-n
,return-expression-n
...],default-expression
)
Argomenti
switch
richiede uno o più abbinamenti di espressioni if,then e una espressione per l'argomento else.
- espressione di condizione
-
L'espressione da confrontare con i valori letterali dell'etichetta. Può trattarsi di un nome di campo come
address
, un valore letterale comeUnknown
o un'altra funzione cometoString(salesAmount)
. - etichetta
-
Il letterale da confrontare con l'argomento di condition-expression, tutti i letterali devono avere lo stesso tipo di dati dell'argomento condition-expression.
switch
accetta un massimo di 5.000 etichette. - return-expression
-
L'espressione da restituire se il valore della sua etichetta è uguale al valore di condition-expression. Può trattarsi di un nome di campo come
address
, un valore letterale comeUnknown
o un'altra funzione cometoString(salesAmount)
. Tutti gli argomenti return-expression devono avere lo stesso tipo di dati di default-expression. - default-expression
-
L'espressione da restituire se nessun valore di qualsiasi argomento dell'etichetta è uguale al valore di condition-expression. Può trattarsi di un nome di campo come
address
, un valore letterale comeUnknown
o un'altra funzione cometoString(salesAmount)
. Tutti gli argomenti default-expression devono avere lo stesso tipo di dati di return-expression.
Tipo restituito
switch
restituisce un valore dello stesso tipo di dati dei valori in return-expression. Tutti i dati restituiti da return-expression e default-expression devono essere dello stesso tipo o essere convertiti nello stesso tipo.
Esempi generali
L'esempio seguente restituisce il Regione AWS codice del nome della regione di input.
switch(region_name, "US East (N. Virginia)", "us-east-1", "Europe (Ireland)", "eu-west-1", "US West (N. California)", "us-west-1", "other regions")
I seguenti sono i valori di campo forniti.
"US East (N. Virginia)" "US West (N. California)" "Asia Pacific (Tokyo)"
Per questi valori di campo vengono restituiti i seguenti valori.
"us-east-1" "us-west-1" "other regions"
Uso di switch per sostituire ifelse
Il seguente caso d'uso ifelse
è equivalente all'esempio precedente, per ifelse
che valutare se i valori di un campo sono uguali a valori letterali diversi; l'uso di switch
invece è una scelta migliore.
ifelse(region_name = "US East (N. Virginia)", "us-east-1", region_name = "Europe (Ireland)", "eu-west-1", region_name = "US West (N. California)", "us-west-1", "other regions")
Espressione come valore restituito
L'esempio seguente utilizza le espressioni in return-expressions:
switch({origin_city_name}, "Albany, NY", {arr_delay} + 20, "Alexandria, LA", {arr_delay} - 10, "New York, NY", {arr_delay} * 2, {arr_delay})
L'esempio precedente modifica il tempo di ritardo previsto per ogni volo da una città particolare.
![Un'immagine dei risultati dell'esempio della funzione, sotto forma di tabella.](images/switch-function-example.png)