CASE
문은 하나 이상의 조건을 평가해 첫 번째 조건이 충족되면 결과를 반환하고, 조건이 하나도 충족되지 않으면 기본 결과를 반환합니다.
참고: CASE
문에는 검색된 CASE
과 단순 CASE
의 두 가지 형태가 있습니다. 검색된 CASE
문을 사용하면 보다 정교한 로직을 사용할 수 있으며, 간단한 CASE
문은 더 간단하게 구성할 수 있습니다.
참고: IF
사용 예
CASE
의 일반적인 용도는 데이터의 새 카테고리 또는 그룹을 만드는 것입니다. 예를 들어 선택된 국가 값을 '영업 지역' 측정기준으로 그룹화하려면 다음과 같이 CASE
문을 작성합니다.
CASE WHEN Country IN ("USA","Canada","Mexico") THEN "North America" WHEN Country IN ("England","France") THEN "Europe" ELSE "Other" END
문법
CASE WHEN condition THEN result [WHEN condition THEN result] [...] [ELSE else_result] END
매개변수
-
condition
- 논리 필드 또는 표현식.WHEN
절은조건
을 평가하고 지정된 조건이 충족되면 true를, 충족되지 않으면 false를 반환합니다. -
result
- 모든 유형의 필드 또는 표현식.WHEN
절마다 일치하는THEN
절이 있어야 해당WHEN 조건
이 참인 경우의 결과가 지정됩니다.WHEN
조건이 여러 개 있는 경우CASE
표현식은 첫 번째 참조건
에 대한결과
를 반환합니다. else_result
(선택사항) - 모든 유형의 필드 또는 표현식.ELSE
else_result
절은CASE
문의 기본 결과를 지정합니다. 참인WHEN
절이 없으면 이 결과가 반환됩니다.CASE
문에ELSE
절이 없고WHEN
절 중에 참인 절이 없으면CASE
문에NULL
이 반환됩니다.
CASE
문에는 ELSE
절이 하나만 있을 수 있습니다.
참고: CASE
문의 모든 THEN
절은 동일한 데이터 유형을 반환해야 합니다. 예를 들어 첫 번째 THEN
절이 Text 데이터 유형을 반환하는 경우 추가 THEN
절도 Text 데이터 유형을 반환해야 합니다.
검색 CASE
작동 방식
검색 CASE
문은 CASE
키워드로 시작하고 END
키워드로 끝납니다. 그 사이에는 다음과 같은 여러 섹션이나 절이 있습니다.
WHEN
: 평가할 조건. 하나의CASE
문에 여러WHEN
절이 포함될 수 있습니다.THEN
:WHEN
절의 조건이 참인 경우 반환되는 결과.CASE
문에는 각WHEN
절에 대한 하나의THEN
절이 있어야 합니다.ELSE
: 선택사항.WHEN
절 조건 중 참인 조건이 없으면CASE
는ELSE
절로 값을 반환하며,ELSE
절을 지정하지 않았다면NULL
이 반환됩니다.
CASE
는 연속된 각 WHEN
절을 평가하고 조건이 참인 첫 번째 결과를 반환합니다. 나머지 WHEN
절과 ELSE
결과는 평가되지 않습니다. 모든 WHEN
조건이 거짓 또는 NULL
이면 CASE
는 ELSE
결과를 반환하고 ELSE
절이 없는 경우 NULL
을 반환합니다.
예
불일치 관계 확인
CASE WHEN Medium != "cpc" THEN "free" ELSE "paid" END
숫자 측정기준 값을 개별 버킷으로 분류
예를 들어 주문 금액에 따라 다음과 같이 주문을 'Small', 'Medium', 'Large'로 구분할 수 있습니다.
CASE WHEN Amount < 20 THEN "Small" WHEN Amount >= 20 and Amount < 100 THEN "Medium" WHEN Amount >= 100 THEN "Large" END
논리 조건 AND 평가
CASE WHEN Country ISO Code = "US" AND Medium = "cpc" THEN "US - Paid" ELSE "other" END
논리 조건 AND/OR 평가
CASE WHEN REGEXP_MATCH(Video Title, ".*Google Analytics*") AND is_livestream = TRUE OR Video Length > 600 THEN "GA Livestream or long video" END
매개변수 값에 따라 다른 필드 또는 값 반환
예 1: 선택된 매개변수 값을 기준으로 측정기준이 반환됩니다. 이 기법을 사용하면 사용자가 차트에 사용된 세부 측정기준을 전환할 수 있습니다.
CASE WHEN Breakdown = "Product Category" THEN Product Category WHEN Breakdown = "Store" THEN Store END
단순 CASE 문법으로 작성할 수도 있습니다.
CASE Breakdown WHEN "Product Category" THEN Product Category WHEN "Store" THEN Store END
예 2: 매개변수 값에 따라 다른 측정항목을 반환합니다.
CASE WHEN Show Adjusted Cost = TRUE THEN Cost + Adjustments ELSE Cost END
중첩 CASE
문
CASE
문을 중첩하여 더 복잡한 분기 로직을 만들 수 있습니다.
CASE WHEN REGEXP_CONTAINS(SKU, "Hats") THEN CASE WHEN Color = "blue" THEN "BLUE HAT" ELSE "JUST A HAT" END ELSE "NOT A HAT" END