Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
switch
switch
vergleicht einen condition-expression (Bedingungsausdruck) mit den literalen Bezeichnungen innerhalb einer Reihe von Kombinationen aus literalen Bezeichnungen und Rückgabeausdrücken. Anschließend wird der return-expression (Rückgabeausdruck) zurückgegeben, der der ersten literalen Bezeichnung entspricht, die dem Bedingungsausdruck entspricht. Wenn kein Label dem condition-expression (Bedingungsausdruck) entspricht, gibt switch
default-expression (Standardausdruck) zurück. Jeder return-expression (Rückgabeausdruck) und jeder default-expression (Standardausdruck) müssen denselben Datentyp haben.
Syntax
switch(
condition-expression
,label-1
,return-expression-1
[,label-n
,return-expression-n
...],default-expression
)
Argumente
switch
erfordert mindestens ein oder mehrere if,then-Ausdruckspaar/e sowie genau einen Ausdruck für das else-Argument.
- condition-expression (Bedingungsausdruck)
-
Der Ausdruck, der mit den label-literals (Labelliteralen) verglichen werden soll. Es kann sich dabei um einen Feldnamen wie
address
, einen literalen Wert wie „Unknown
“ oder um eine sakalare Funktion wietoString(salesAmount)
handeln. - Bezeichnung
-
Das Literal, das mit dem Argument ondition-expression (Bedingungsausdruck) verglichen werden soll. Alle Literale müssen denselben Datentyp wie das Argument Bedingungsausdruck haben.
switch
akzeptiert bis zu 5000 Bezeichnungen. - return-expressio (Rückgabeausdruck)
-
Der Ausdruck, der zurückgegeben werden soll, wenn der Wert seiner Bezeichnung dem Wert des condition-expression (Bedingungsausdrucks) entspricht. Es kann sich dabei um einen Feldnamen wie
address
, einen literalen Wert wie „Unknown
“ oder um eine sakalare Funktion wietoString(salesAmount)
handeln. Alle return-expression-Argumente müssen vom gleichen Datentyp wie alle default-expression-Argumente sein. - default-expression (Standardausdruck)
-
Der Ausdruck, der zurückgegeben werden soll, wenn kein Wert eines Bezeichungsarguments dem Wert des condition-expression (Bedingungsausdrucks) entspricht. Es kann sich dabei um einen Feldnamen wie
address
, einen literalen Wert wie „Unknown
“ oder um eine sakalare Funktion wietoString(salesAmount)
handeln. Der default-expression muss vom gleichen Datentyp wie alle return-expression-Argumente sein.
Rückgabetyp
switch
gibt einen Wert desselben Typs wie die Werte in return-expression zurück. Alle Daten, die return-expression (Rückgabeausdruck) und default-expression (Standardausdruck) zurückgeben, müssen denselben Datentyp haben oder in denselben Datentyp konvertiert werden.
Allgemeine Beispiele
Das folgende Beispiel gibt den AWS-Region Code des Namens der Eingaberegion zurück.
switch(region_name, "US East (N. Virginia)", "us-east-1", "Europe (Ireland)", "eu-west-1", "US West (N. California)", "us-west-1", "other regions")
Das Feld enthält folgende Werte.
"US East (N. Virginia)" "US West (N. California)" "Asia Pacific (Tokyo)"
Für diese Feldwerte werden die folgenden Ergebniswerte zurückgegeben.
"us-east-1" "us-west-1" "other regions"
Verwenden Sie den Schalter zum Ersetzen von ifelse
Der folgende Anwendungsfall ifelse
entspricht dem vorherigen Beispiel, wobei ifelse
bewertet, ob Werte eines Felds unterschiedlichen literalen Werten entsprechen, und switch
stattdessen besser verwendet werden sollte.
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")
Ausdruck als Rückgabewert
Das folgende Beispiel verwendet Ausdrücke in return-expressions (Rückgabeausdrücken):
switch({origin_city_name}, "Albany, NY", {arr_delay} + 20, "Alexandria, LA", {arr_delay} - 10, "New York, NY", {arr_delay} * 2, {arr_delay})
Im vorherigen Beispiel wird die erwartete Verspätungszeit für jeden Flug aus einer bestimmten Stadt geändert.
