当它为NULL时如何设置0和MAX功能?

时间:2012-04-16 10:08:39

标签: mysql null max zero

我想了解如何在MAX函数为NULL时设置属性的0值。例如:

Name columns:
number - date

Values:
10 - 2012-04-04
11 - 2012-04-04
12 - 2012-04-04
13 - 2012-04-15
14 - 2012-06-21
 1 - 2013-07-04

Number是增量字段,但是在新的一年到来时它已经设置为1。 但结果是:

SELECT (MAX(number)+1) number WHERE date LIKE "2014%" 

为NULL而不是1,因为MAX(数字)为NULL而不是0

2 个答案:

答案 0 :(得分:42)

嗯,因为没有像2014年这样的日期,你会期望为null,因为没有任何东西实际上并不是任何东西。

但是这样做:

COALESCE(MAX(number),0)

这意味着:从下一个列表中获取第一个非空的内容,因此,如果您的max为空,则会给您0

答案 1 :(得分:19)

COALESCE有效,但IFNULL对我来说似乎更清楚。

IFNULL(MAX(number), 0)

如果第一个表达式不是NULL,则IFNULL()返回表达式本身,否则返回第二个参数。 IFNULL()返回一个数值或字符串值,具体取决于使用它的上下文。