Вам нужно другое CASE
выражение.
SELECT
CASE
WHEN a >= b AND a >= c AND a >= d AND a >= e THEN a
WHEN b >= c AND b >= d AND b >= e THEN b
WHEN c >= d AND c >= e THEN c
WHEN d >= e THEN d
ELSE e
END as ans,
CASE
WHEN a >= b AND a >= c AND a >= d AND a >= e THEN 'a'
WHEN b >= c AND b >= d AND b >= e THEN 'b'
WHEN c >= d AND c >= e THEN 'c'
WHEN d >= e THEN 'd'
ELSE 'e'
END as column
FROM response
where qno='1'
Вы также можете упростить это, используя функцию GREATEST()
.
SELECT
GREATEST(a, b, c, d, e) AS ans,
CASE GREATEST(a, b, c, d, e)
WHEN a THEN 'a'
WHEN b THEN 'b'
WHEN c THEN 'c'
WHEN d THEN 'd'
ELSE 'e'
END AS column
FROM response
WHERE qno = '1'