Data Manipulation in Snowflake
Jake Roach
Field Data Engineer
Evaluate the value of a field and do something based on that value.
$$
CASE
Statements
$$
CASE ... WHEN ... THEN ... END
$$
CASE
WHEN
THEN
END
SELECT
student_name,
CASE
WHEN grade_num = 12 THEN 'Senior'
WHEN grade_num = 11 THEN 'Junior'
...
END AS grade
FROM students;
| student_name | grade |
| --------------- | --------- |
| Viraj | Junior |
| Stephanie | Senior |
SELECT student_id, course_name,
CASE
WHEN grade = 'A' THEN 4.0
WHEN grade = 'B' THEN 3.0
WHEN grade = 'C' THEN 2.0 WHEN grade = 'D' THEN 1.0 WHEN grade = 'F' THEN 0.0
END AS gpa -- Grade Point Average
FROM student_courses;
| student_id | course_name | gpa |
| ---------- | ------------- | --- |
| 001 | Stats 101 | 4.0 |
| 001 | Calculus | 3.0 |
| 002 | Biology | 3.0 |
| 003 | Finance | 1.0 |
| 004 | Engineering | 4.0 |
| 004 | Sales | 2.0 |
| 004 | Botany | 4.0 |
...
Data Manipulation in Snowflake