This guide is specifically for SQL Server syntax.
Advanced-level SQL CASE WHEN practice exercises with solutions.
Exercise 1
Question: Count orders by status (Pending, Shipped, Delivered).
SELECT COUNT(CASE WHEN status = 'pending' THEN 1 END) AS pending_count, COUNT(CASE WHEN status = 'shipped' THEN 1 END) AS shipped_count, COUNT(CASE WHEN status = 'delivered' THEN 1 END) AS delivered_count FROM orders;
CASE inside aggregate functions allows pivoting data. This turns row values into columns.
SQL Server-Specific Notes
This page covers SQL Server syntax. Other databases may have different syntax for similar operations.