Pivot Rows Into Columns With CASE

Turn row values into columns with conditional aggregation, producing a wide report without a dedicated pivot operator.

SqlData Integrity

Code

snippet
SELECT
    product_id,
    SUM(CASE WHEN quarter = 'Q1' THEN revenue ELSE 0 END) AS q1,
    SUM(CASE WHEN quarter = 'Q2' THEN revenue ELSE 0 END) AS q2,
    SUM(CASE WHEN quarter = 'Q3' THEN revenue ELSE 0 END) AS q3,
    SUM(CASE WHEN quarter = 'Q4' THEN revenue ELSE 0 END) AS q4
FROM quarterly_sales
WHERE fiscal_year = 2025
GROUP BY product_id
ORDER BY product_id;