翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
switch
リテラルラベルと戻り式の組み合わせのセット内で、switch
は条件式をリテラルラベルと比較します。次に、条件式と等しい最初のリテラルラベルに対応する戻り式を返します。条件式と等しいラベルがない場合は、switch
はデフォルト式を返します。戻り式とデフォルト式はすべて同じデータ型でなければなりません。
構文
switch(
condition-expression
,label-1
,return-expression-1
[,label-n
,return-expression-n
...],default-expression
)
引数
switch
は、1 つ以上の if、then 式のペアと、1 つの正確な else 引数の式を必要とします。
- 条件式
-
ラベルリテラルと比較する式。
address
のようなフィールド名、「Unknown
」のようなリテラル値、またはtoString(salesAmount)
のような別のスカラー関数を使用できます。 - ラベル
-
条件式引数と比較するリテラルは、すべてのリテラルが条件式引数と同じデータ型でなければなりません。
switch
は最大 5000 個のラベルを受け付けます。 - 戻り式
-
ラベルの値が条件式の値と等しい場合に返される式。
address
のようなフィールド名、「Unknown
」のようなリテラル値、またはtoString(salesAmount)
のような別のスカラー関数を使用できます。戻り式の引数はすべて、デフォルト式と同じデータ型を使用する必要があります。 - デフォルト式
-
ラベル引数のいずれの値も条件式の値と等しくない場合に返される式。
address
のようなフィールド名、「Unknown
」のようなリテラル値、またはtoString(salesAmount)
のような別のスカラー関数を使用できます。デフォルト式は、すべての戻り式引数と同じデータ型を使用する必要があります。
戻り型
switch
は、同じデータ型の値を戻り式の値で返します。すべてのデータを返す戻り式およびデフォルト式は、同じデータ型であるか、同じデータ型に変換されている必要があります。
一般的な例
次の例は、入力されたリージョンの名前の AWS リージョン コードを返します。
switch(region_name, "US East (N. Virginia)", "us-east-1", "Europe (Ireland)", "eu-west-1", "US West (N. California)", "us-west-1", "other regions")
次が指定したフィールド値です。
"US East (N. Virginia)" "US West (N. California)" "Asia Pacific (Tokyo)"
これらのフィールド値に対して、以下の値が返されます。
"us-east-1" "us-west-1" "other regions"
スイッチを使用して ifelse
を交換してください
次の ifelse
の使用例は前の例と同等で、ifelse
があるフィールドの値が別のリテラル値に等しいかどうかを評価するには、代わりに switch
を使用する方が適切です。
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")
戻り値としての式
次の例では、戻り式に式を使用しています。
switch({origin_city_name}, "Albany, NY", {arr_delay} + 20, "Alexandria, LA", {arr_delay} - 10, "New York, NY", {arr_delay} * 2, {arr_delay})
前の例では、特定の都市から出発する各フライトの予想遅延時間を変更しています。
