Logic có điều kiện với câu lệnh CASE

Xử lý dữ liệu trong Snowflake

Jake Roach

Field Data Engineer

Sử dụng ELSE

$$

Đôi khi có thêm giá trị không khớp bất kỳ phần WHEN ... THEN.

$$

  • Dùng ELSE để bao quát các trường hợp này
  • Tốt để bắt các trường hợp biên
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 |
Xử lý dữ liệu trong Snowflake

Đánh giá điều kiện

Toán tử Điều kiện Ví dụ
= Giá trị bằng giá trị khác column_a = 'value_a'
IN (...) Giá trị nằm trong danh sách column_a IN ('value_a', 'value_b')
>, < Lớn hơn hoặc nhỏ hơn giá trị khác column_a > 0
>=, <= Tương ứng với ><, bao gồm bằng column_a >= 0
BETWEEN Nằm giữa hai giá trị, bao gồm biên column_a BETWEEN 0 AND 10

Có thể kết hợp các toán tử so sánh với AND, OR, hoặc NOT

Câu lệnh CASE trong Snowflake hiệu quả do là cơ sở dữ liệu hướng cột

Xử lý dữ liệu trong Snowflake

Phân loại nhiệt độ

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;
Xử lý dữ liệu trong Snowflake

Phân loại nhiệt độ

Bảng kết quả của câu lệnh CASE phân loại theo nhiệt độ

Xử lý dữ liệu trong Snowflake

Kết hợp các điều kiện

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;

Ta có thể đánh giá nhiều cột trong một câu lệnh CASE

Xử lý dữ liệu trong Snowflake

Kết hợp các điều kiện

Bảng kết quả của câu lệnh CASE phân loại theo nhiệt độ và trạng thái ngoài trời

Xử lý dữ liệu trong Snowflake

Hãy luyện tập!

Xử lý dữ liệu trong Snowflake

Preparing Video For Download...