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 절은 condition을 평가하고 지정된 조건이 충족되면 true를, 충족되지 않으면 false를 반환합니다.

  • result: 모든 유형의 필드 또는 표현식 각 WHEN 절에는 일치하는 THEN 절이 있어야 합니다. 이 절은 해당 WHEN condition가 참인 경우의 결과를 지정합니다. WHEN 절이 여러 개 있는 경우 CASE 문은 첫 번째 참인 conditionresult를 반환합니다.

  • else_result (선택사항): 모든 유형의 필드 또는 표현식 ELSE else_result 절은 CASE 문에 대한 기본 결과를 지정합니다. WHEN 절 중 참인 절이 없으면 이 절이 반환됩니다. CASE 문에 ELSE 절이 없고 WHEN 절 중에 참인 절이 없으면 CASE 문에 NULL이 반환됩니다.

CASE 문에는 ELSE 절이 하나만 있을 수 있습니다.

검색 CASE 작동 방식

검색 CASE 문은 CASE 키워드로 시작하고 END 키워드로 끝납니다. 그 사이에는 다음과 같은 여러 섹션이나 절이 있습니다.

  • WHEN: 평가할 조건입니다. 하나의 CASE 문에 여러 개의 WHEN 절이 있을 수 있습니다.
  • THEN: WHEN 절의 조건이 참인 경우 반환되는 결과입니다. CASE 문에는 각 WHEN 절에 대한 THEN 절이 하나 있어야 합니다.
  • ELSE: 선택사항. WHEN 절 조건 중 참인 조건이 없으면 CASEELSE 절로 값을 반환하며, ELSE 절을 지정하지 않았다면 NULL을 반환합니다.

CASE는 연속된 각 WHEN 절을 평가하고 조건이 참인 첫 번째 결과를 반환합니다. 나머지 WHEN 절과 ELSE 결과는 평가되지 않습니다. 모든 WHEN 조건이 거짓이거나 NULL이면 CASEELSE 결과를 반환하고, 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