SQL ยท Chapter 28 of 42
CASE Expression
CASE is SQL's if/else. It returns a value based on conditions.
Use for computed labels, conditional aggregates and row-level logic.
Syntax
CASE WHEN cond1 THEN val1 WHEN cond2 THEN val2 ELSE val3 ENDSimple vs searched
Simple CASE compares one expression to values. Searched CASE has full boolean conditions per WHEN.
Conditional aggregates
`SUM(CASE WHEN status='paid' THEN 1 ELSE 0 END)` counts paid rows โ great for pivots.
Example 1 (sql)
SELECT name,
CASE WHEN age < 18 THEN 'Minor'
WHEN age < 60 THEN 'Adult'
ELSE 'Senior' END AS bucket
FROM users;Output
name | bucket
Ana | Adult
Ben | AdultBucket by age.
Example 2 (sql)
SELECT
COUNT(*) AS total,
SUM(CASE WHEN status='paid' THEN 1 ELSE 0 END) AS paid
FROM orders;Output
total | paid
100 | 87Conditional count via SUM+CASE.
Key points
- CASE is SQL's if/else.
- Always end with END.
- ELSE is optional (defaults to NULL).
- Combine with SUM for conditional counts.
๐ก Note: PostgreSQL and MySQL also have shorter alternatives: `NULLIF`, `COALESCE`, `IF()`.
