The CASE statement in SQL allows you to implement conditional logic within queries, making it a powerful tool for handling complex data transformations and classifications.
Basic Syntax
The CASE statement works like an IF-ELSE structure, evaluating conditions and returning corresponding values:
SELECT column_name,
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE default_result
END AS alias_name
FROM table_name;
Example: Categorizing Data
Assume we have an Employees table with an Age column, and we want to categorize employees based on their age groups:
SELECT Name, Age,
CASE
WHEN Age < 25 THEN 'Young'
WHEN Age BETWEEN 25 AND 40 THEN 'Mid-Age'
ELSE 'Senior'
END AS AgeCategory
FROM Employees;
Output Example:
| Name |
Age |
AgeCategory |
| Alice |
22 |
Young |
| Bob |
30 |
Mid-Age |
| Charlie |
50 |
Senior |
Using CASE in Aggregations
CASE is often used in aggregate functions to perform conditional counting or summing:
SELECT
SUM(CASE WHEN Age < 25 THEN 1 ELSE 0 END) AS YoungCount,
SUM(CASE WHEN Age BETWEEN 25 AND 40 THEN 1 ELSE 0 END) AS MidAgeCount,
SUM(CASE WHEN Age > 40 THEN 1 ELSE 0 END) AS SeniorCount
FROM Employees;
Using CASE in ORDER BY
You can use CASE to customize sorting order dynamically:
SELECT Name, Age
FROM Employees
ORDER BY
CASE
WHEN Age < 25 THEN 1
WHEN Age BETWEEN 25 AND 40 THEN 2
ELSE 3
END;
Conclusion
The CASE statement is a versatile tool in SQL for implementing conditional logic in SELECT, WHERE, ORDER BY, and aggregate functions. It enhances query flexibility, making data classification and transformation more efficient.
Walt is a computer scientist, software engineer, startup founder and previous mentor for a coding bootcamp. He has been creating software for the past 20 years.
Last updated on: