需求
求 MySQL 多列中的最大的值。
具体需求:求 test 表中列 a1、a2、a3、a4中的最大列的值。
实现
涉及知识点:GREATEST、LEAST 两个函数(greatest 最大值、least 最小值)
SELECT
GREATEST(c1, c2, c3, c4) AS max,
LEAST(c1, c2, c3, c4) AS min
FROM
(
SELECT
CASE WHEN a1 IS NULL THEN 0 ELSE a1 END c1,
CASE WHEN a2 IS NULL THEN 0 ELSE a2 END c2,
CASE WHEN a3 IS NULL THEN 0 ELSE a3 END c3,
CASE WHEN a4 IS NULL THEN 0 ELSE a4 END c4
FROM
test
# WHERE 条件
) t