Lógica condicional con sentencias CASE

Manipulación de datos en Snowflake

Jake Roach

Field Data Engineer

Usar ELSE

$$

A veces hay valores adicionales que no encajan en una sentencia WHEN ... THEN.

$$

  • Usa ELSE para cubrir estos casos extra
  • Gran forma de capturar casos límite
SELECT
    student,
    CASE
        WHEN grade_num = 12 THEN 'Senior'
        WHEN grade_num = 11 THEN 'Junior'
        ...
        ELSE 'Not in HS'  -- ¡Captura el resto!
    END AS grade
FROM students;
          |   student  |    grade   |
          | ---------- | ---------- |
          |  Viraj     |  Junior    |
          |  Stephanie |  Senior    |
          |  Lewis     |  Not in HS |
Manipulación de datos en Snowflake

Evaluar una condición

Operador Condición Ejemplo
= El valor es igual a otro column_a = 'value_a'
IN (...) El valor está en una lista column_a IN ('value_a', 'value_b')
>, < Mayor o menor que otro valor column_a > 0
>=, <= Versiones de > y < que incluyen igualdad column_a >= 0
BETWEEN Valor entre dos valores, inclusivo column_a BETWEEN 0 AND 10

Estos operadores se pueden combinar con AND, OR o NOT

Las sentencias CASE en Snowflake son eficientes por ser una base de datos orientada a columnas

Manipulación de datos en Snowflake

Categorizar temperaturas

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;
Manipulación de datos en Snowflake

Categorizar temperaturas

Una tabla con los resultados de una sentencia CASE que clasifica los registros por su temperatura

Manipulación de datos en Snowflake

Combinar condiciones

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;

Podemos evaluar varias columnas en una sola sentencia CASE

Manipulación de datos en Snowflake

Combinar condiciones

Una tabla con los resultados de una sentencia CASE que clasifica registros por su temperatura y estado exterior

Manipulación de datos en Snowflake

¡Vamos a practicar!

Manipulación de datos en Snowflake

Preparing Video For Download...