获取行的最大值或最小值,但忽略空白列或0

时间:2017-09-25 10:00:31

标签: mysql excel function excel-formula

在excel中我们可以找到最大值。和分钟。忽略空白列的行的值,如此图片

enter image description here

在mysql数据库中,我有一个包含3个字段的表,每个字段的数据类型都是float。通过使用最大和最小的函数,我打算找到最大值。和分钟。每行的值。但结果是

enter image description here

excel和mysql中的结果不同,因为在excel中我们可以清空列,但在mysql中(使用float数据类型),空列将更改为0.

如果列包含NULL,则结果如下

enter image description here

问题: 有没有办法让mysql中的0或NULL值读为空列?

1 个答案:

答案 0 :(得分:1)

也许您可以使用ifnull替换低值或高值

drop table if exists t;
Create table t (a float, b float, c float);
insert into t (b,c) values (1,2);
select greatest(ifnull(a,0),ifnull(b,0),ifnull(c,0)) maxi,
         least(ifnull(a,999999),ifnull(b,999999),ifnull(c,999999)) mini
 from t;

结果

+------+------+
| maxi | mini |
+------+------+
|    2 |    1 |
+------+------+
1 row in set (0.00 sec)