Logika kondisional dengan pernyataan CASE

Manipulasi Data di Snowflake

Jake Roach

Field Data Engineer

Menggunakan ELSE

$$

Terkadang ada nilai tambahan yang tidak masuk ke dalam WHEN ... THEN.

$$

  • Gunakan ELSE untuk menangkap skenario tersebut
  • Cara efektif untuk menangani edge case
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 |
Manipulasi Data di Snowflake

Mengevaluasi kondisi

Operator Kondisi Contoh
= Nilai sama dengan nilai lain column_a = 'value_a'
IN (...) Nilai ada dalam daftar nilai column_a IN ('value_a', 'value_b')
>, < Nilai lebih besar atau lebih kecil dari nilai lain column_a > 0
>=, <= Pasangan > dan <, termasuk sama dengan column_a >= 0
BETWEEN Nilai di antara dua nilai (inklusif) column_a BETWEEN 0 AND 10

Operator perbandingan ini bisa digabung dengan AND, OR, atau NOT

Pernyataan CASE di Snowflake efisien karena basis datanya berorientasi kolom

Manipulasi Data di Snowflake

Mengategorikan suhu

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;
Manipulasi Data di Snowflake

Mengategorikan suhu

Tabel hasil pernyataan CASE yang mengategorikan baris berdasarkan suhu

Manipulasi Data di Snowflake

Menggabungkan pernyataan kondisional

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;

Kita dapat mengevaluasi beberapa kolom dalam satu pernyataan CASE

Manipulasi Data di Snowflake

Menggabungkan pernyataan kondisional

Tabel hasil pernyataan CASE yang mengategorikan baris berdasarkan suhu dan status luar ruangan

Manipulasi Data di Snowflake

Ayo berlatih!

Manipulasi Data di Snowflake

Preparing Video For Download...