Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
switch
switch
compare une expression-condition avec les étiquettes littérales, dans un ensemble de paires d'étiquettes littérales et de return-expression. Il renvoie ensuite l'expression return-expression correspondant à la première étiquette littérale qui est égale à l'expression condition-expression. Si aucune étiquette n'est égale à l'expression condition-expression, switch
renvoie l'expression default-expression. Chaque return-expression et default-expression doit avoir le même type de données.
Syntaxe
switch(
condition-expression
,label-1
,return-expression-1
[,label-n
,return-expression-n
...],default-expression
)
Arguments
L'opérateur switch
nécessite une ou plusieurs paires d'expressions if,then et requiert exactement une expression pour l'argument else.
- condition-expression
-
L'expression à comparer avec l'étiquette-littérale. Il peut s'agir d'un nom de champ comme
address
, d'une valeur littérale comme «Unknown
» ou d'une autre fonction scalaire commetoString(salesAmount)
. - étiquette
-
Le littéral à comparer avec l'argument de condition-expression, tous les littéraux doivent avoir le même type de données que l'argument de condition-expression. L'expression
switch
accepte jusqu'à 5000 étiquettes. - return-expression
-
L'expression à retourner si la valeur de son étiquette est égale à la valeur de condition-expression. Il peut s'agir d'un nom de champ comme
address
, d'une valeur littérale comme «Unknown
» ou d'une autre fonction scalaire commetoString(salesAmount)
. Tous les arguments de return-expression doivent avoir le même type de données que default-expression. - default-expression
-
L'expression à renvoyer si aucune valeur des arguments de l'étiquette n'est égale à la valeur de condition-expression. Il peut s'agir d'un nom de champ comme
address
, d'une valeur littérale comme «Unknown
» ou d'une autre fonction scalaire commetoString(salesAmount)
. default-expression doit avoir le même type de données que tous les arguments de return-expression.
Type de retour
switch
renvoie une valeur du même type de données que les valeurs de return-expression. Toutes les données renvoyées par return-expression et default-expression doivent être du même type de données ou être converties dans le même type de données.
Exemples généraux
L'exemple suivant renvoie le Région AWS code du nom de la région d'entrée.
switch(region_name, "US East (N. Virginia)", "us-east-1", "Europe (Ireland)", "eu-west-1", "US West (N. California)", "us-west-1", "other regions")
Les valeurs suivantes sont celles du champ donné.
"US East (N. Virginia)" "US West (N. California)" "Asia Pacific (Tokyo)"
Pour ces valeurs, les valeurs suivantes sont renvoyées.
"us-east-1" "us-west-1" "other regions"
Utilisation d'un commutateur pour remplacer ifelse
Le cas d'utilisation ifelse
suivant est un équivalent de l'exemple précédent, mais pour ifelse
évaluer si les valeurs d'un champ sont égales à des valeurs littérales différentes, il est préférable d'utiliser switch
à la place.
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")
Expression comme valeur de retour
L'exemple suivant utilise des expressions dans des 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'exemple précédent modifie le temps de retard prévu pour chaque vol au départ d'une ville donnée.
![Une image des résultats de l'exemple de fonction, présentés sous forme de tableau.](images/switch-function-example.png)