Logique conditionnelle avec les instructions CASE

Manipulation de données dans Snowflake

Jake Roach

Field Data Engineer

Utiliser ELSE

$$

Parfois, des valeurs supplémentaires n'entrent dans aucun bloc WHEN ... THEN.

$$

  • Utilisez ELSE pour couvrir ces cas supplémentaires
  • Idéal pour intercepter les cas limites
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 |
Manipulation de données dans Snowflake

Évaluer une condition

Opérateur Condition Exemple
= La valeur est égale à une autre valeur column_a = 'value_a'
IN (...) La valeur appartient à une liste column_a IN ('value_a', 'value_b')
>, < La valeur est supérieure ou inférieure à une autre column_a > 0
>=, <= Versions de > et <, incluent aussi l'égalité column_a >= 0
BETWEEN La valeur est comprise entre deux bornes, incluses column_a BETWEEN 0 AND 10

Ces opérateurs se combinent avec AND, OR ou NOT

Les instructions CASE dans Snowflake sont efficaces grâce au stockage en colonnes

Manipulation de données dans Snowflake

Catégoriser les températures

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;
Manipulation de données dans Snowflake

Catégoriser les températures

Un tableau présentant les résultats d'une instruction CASE qui catégorise les enregistrements selon la température

Manipulation de données dans Snowflake

Combiner des conditions

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;

Nous pouvons évaluer plusieurs colonnes dans une seule instruction CASE

Manipulation de données dans Snowflake

Combiner des conditions

Un tableau présentant les résultats d'une instruction CASE qui catégorise selon la température et l'état météo

Manipulation de données dans Snowflake

Passons à la pratique !

Manipulation de données dans Snowflake

Preparing Video For Download...