CASE
설명
CASE
하나 이상의 입력 조건에 따라 데이터세트의 각 행을 평가하고, 입력 조건이 충족되면 지정된 결과를 출력하는 행 함수입니다.구문
CASE
WHEN
input_condition
[AND
|OR
input_condition
]THEN
output_expression
[...] [ELSE
other_output_expression
] END
반환 값
행마다 출력 표현식과 동일한 유형의 값을 1개 반환합니다. 모든 출력 표현식은 동일한 필드 유형을 반환해야 합니다.
서로 다른 필드 유형을 반환하는 출력 표현식이 여러 개 있는 경우 전체 필드 유형을 묶어야 합니다.
CASE
다음과 같은 필드 유형 변환 함수 중 하나의 표현식 TO_INT
, 모든 출력 값을 특정 필드 유형으로 명시적으로 캐스트하려는 경우입력 매개변수
- WHENinput_condition
- 필수 콘텐츠 다음WHEN키워드는 하나 이상의 부울 표현식을 지정하는 데 사용됩니다(지원되는 조건 연산자 참조). 입력 값이 조건을 충족하면 출력 표현식이 적용됩니다. 입력 조건은 표현식에 다른 행 함수를 포함할 수 있지만, 요약 함수 또는 측정값 표현식은 포함할 수 없습니다. 다음을 사용할 수 있습니다.AND또는OR여러 입력 조건을 결합하는 키워드
- THENoutput_expression
- 필수 콘텐츠 다음THEN키워드는 지정된 조건이 충족될 때 출력 표현식을 지정하는 데 사용됩니다. 출력 표현식은 표현식에 다른 행 함수를 포함할 수 있지만, 요약 함수 또는 측정값 표현식은 포함할 수 없습니다.
- ELSEother_output_expression
- (옵션) 다음ELSE키워드는 지정된 조건이 충족되지 않을 때 사용할 대체 출력 표현식을 지정하는 데 사용할 수 있습니다. 다음과 같은 경우ELSE표현식이 제공되지 않았습니다.ELSE NULL은 기본값입니다.
- 종료
- 필수 콘텐츠 종료를 나타냅니다.CASE함수 처리
예
연령
열의 값을 범위 기반 그룹화(비닝)로 변환합니다.CASE WHEN [age] <= 25 THEN "0-25" WHEN [age] <= 50 THEN "26-50" ELSE "over 50"
END
성별
열의 값을 한 문자열에서 다른 문자열로 변환합니다.CASE WHEN [gender] = "M" THEN "Male" WHEN [gender] = "F" THEN
"Female" ELSE "Unknown" END
차량
열에 다음 값이 포함됩니다: 트럭, 버스, 자가용, 스쿠터, 왜건, 바이크, 삼륜차, 모터사이클. 다음 예에서는차량
열의 여러 값을 단일 값으로 변환합니다.CASE WHEN [vehicle] in ("bike","scooter","motorcycle") THEN "two-wheelers" ELSE
"other" END