CASE 문으로 조건 분기

Snowflake에서 데이터 조작

Jake Roach

Field Data Engineer

ELSE 사용하기

$$

때로는 WHEN ... THEN에 해당하지 않는 값이 있을 수 있습니다.

$$

  • 이런 경우를 ELSE로 처리하십시오
  • 경계 사례를 잡는 좋은 방법입니다
SELECT
    student,
    CASE
        WHEN grade_num = 12 THEN 'Senior'
        WHEN grade_num = 11 THEN 'Junior'
        ...
        ELSE 'Not in HS'  -- Catch others!
    END AS grade
FROM students;
          |   student  |    grade   |
          | ---------- | ---------- |
          |  Viraj     |  Junior    |
          |  Stephanie |  Senior    |
          |  Lewis     |  Not in HS |
Snowflake에서 데이터 조작

조건 평가하기

연산자 조건 예시
= 값이 다른 값과 같다 column_a = 'value_a'
IN (...) 값이 목록 안에 있다 column_a IN ('value_a', 'value_b')
>, < 값이 다른 값보다 크거나 작다 column_a > 0
>=, <= >, <의 대응, 등호 포함 column_a >= 0
BETWEEN 값이 두 값 사이(포함)이다 column_a BETWEEN 0 AND 10

이 비교 연산자는 AND, OR, NOT과 결합할 수 있습니다

Snowflake의 CASE 문은 컬럼 지향 DB 특성으로 효율적입니다

Snowflake에서 데이터 조작

온도 범주화

SELECT
    todays_date,
    temperature,
    CASE

WHEN temperature BETWEEN 70 AND 90 THEN 'Ideal for Swimming'
WHEN temperature >= 50 AND tempreature < 70 THEN 'Perfect for Sports'
WHEN temperature > 32 AND temperature < 50 THEN 'Spring/Fall Temps' WHEN temperature > 0 AND temperature <= 32 THEN 'Winter Weather' ELSE 'Extreme Temperatures'
END AS temperature_description FROM weather;
Snowflake에서 데이터 조작

온도 범주화

CASE 문으로 온도를 범주화한 결과 테이블

Snowflake에서 데이터 조작

조건 결합하기

SELECT
    todays_date,
    temperature,
    status,

CASE WHEN temperature > 70 AND status NOT IN ('Rain', 'Wind') THEN 'Beach'
WHEN temperature BETWEEN 45 AND 70 AND status = 'Sun' THEN 'Sports'
WHEN temperature <= 32 OR status = 'Snow' THEN 'Skiing'
ELSE 'Stay In' END AS activity FROM weather;

하나의 CASE 문에서 여러 컬럼을 함께 평가할 수 있습니다

Snowflake에서 데이터 조작

조건 결합하기

온도와 야외 상태로 CASE 결과를 분류한 테이블

Snowflake에서 데이터 조작

Vamos praticar!

Snowflake에서 데이터 조작

Preparing Video For Download...