需求描述:
在 chaos(id,v1,v2,v3) 表中获取每个 id 对应的 v1、v2、v3 字段的最大值,v1、v2、v3 同为数值类型。...SELECT
id,
GREATEST(v1, v2, v3) AS v_max
FROM
chaos
是不是太简单了点?是的,确实如此。
如果没有GREATEST() 函数呢?...v12 = IF(v1 > v2, v1, v2)
v_max = IF(v12 > v3, v12, v3)
如果 chaos 再增加两个数值列 v4、v5,要同时比较这五个字段的值,嵌套的 IF...那么,有没有比较简单且通用的实现呢?
有。先使用 UNION ALL 把每个字段的值合并在一起,再根据 id 分组求得最大值。...GROUP BY id
要是,不想对每个字段都用 UNION ALL 呢,还有没有办法?