Logique conditionnelle avec les instructions CASE

Manipulation de données dans Snowflake

Jake Roach

Field Data Engineer

Utiliser ELSE

$$

Parfois, des valeurs supplémentaires ne correspondent à aucune clause WHEN ... THEN.

$$

  • Utilisez ELSE pour gérer ces cas supplémentaires
  • Idéal pour capter 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 fait partie d'une liste column_a IN ('value_a', 'value_b')
>, < La valeur est supérieure ou inférieure à une autre column_a > 0
>=, <= Équivalents de > et <, incluent aussi l'égalité column_a >= 0
BETWEEN La valeur est entre deux bornes, inclusives column_a BETWEEN 0 AND 10

Ces opérateurs de comparaison peuvent être combinés avec AND, OR ou NOT

Les instructions CASE dans Snowflake sont efficaces grâce à l'architecture orientée 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 montrant les résultats d'une instruction CASE qui catégorise les enregistrements selon leur 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;

On peut évaluer plusieurs colonnes dans une seule instruction CASE

Manipulation de données dans Snowflake

Combiner des conditions

Un tableau montrant les résultats d'une instruction CASE qui classe les enregistrements selon la température et l'état extérieur

Manipulation de données dans Snowflake

Passons à la pratique !

Manipulation de données dans Snowflake

Preparing Video For Download...