Example 1
Assign letter grades in a subquery, then filter to only passing grades
The inner query assigns a grade to every student using CASE. The outer query then filters on grade = 'A' — which would not be possible in a WHERE clause at the same query level as the CASE expression. Only Bob (92) and Dave (95) meet the threshold.
CREATE TABLE scores (student VARCHAR(50), score INT);
INSERT INTO
scores
VALUES
('Alice', 85),
('Bob', 92),
('Carol', 78),
('Dave', 95);SELECT
student,
score,
grade
FROM
(
SELECT
student,
score,
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
ELSE 'C'
END AS grade
FROM
scores
) AS graded
WHERE
grade = 'A'
ORDER BY
student;| student | score | grade |
|---|---|---|
| Bob | 92 | A |
| Dave | 95 | A |
Identical syntax and result across all engines.