기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
switch
은(는) 리터럴 레이블 및 반환-표현식 쌍 세트 내에서 조건식과 리터럴 레이블을 비교합니다. 그런 다음 조건 표현식과 동일한 첫 번째 리터럴 레이블에 해당하는 반환 표현식을 반환합니다. 조건 표현식과 동일한 레이블이 없는 경우 switch
은(는) 기본 표현식을 반환합니다. 모든 반환 표현식과 기본 표현식은 동일한 데이터 유형을 가져야 합니다.
구문
switch(
condition-expression
,label-1
,return-expression-1
[,label-n
,return-expression-n
...],default-expression
)
인수
switch
은(는) 한 개 이상의 if, then 표현식 쌍 한 개 이상과 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})
위 예시에서는 특정 도시에서 출발하는 각 항공편의 예상 지연 시간을 변경합니다.
