如何从表中的1行获取MAX值及其列标题?

时间:2015-12-27 19:06:18

标签: mysql

基本上我有一个样本表:

Town          V1     V2      V3      V4      V5
New York    0.12    0.1    0.11     0.21    -0.12

来自示例查询:

SELECT town, v1, v2, v3, v4, v5 FROM sample

我想查询只返回以下内容:

New York V4 0.21

这意味着,我想返回城镇,最大值(V4)和最大值(0.21)的标题

在MySQL中有没有简单的方法呢?

1 个答案:

答案 0 :(得分:0)

如果您没有NULL个值,则:

select town, greatest(v1, v2, v3, v4, v5)

如果您拥有NULL值,则会更加痛苦。如果您知道这些值永远不会消极:

select town,
       nullif(greatest(coalesce(v1, -1), coalesce(v2, -1), coalesce(v3, -1),
                       coalesce(v4, -1), coalesce(v5, -1)), -1)