我想了解如何在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
答案 0 :(得分:42)
嗯,因为没有像2014年这样的日期,你会期望为null,因为没有任何东西实际上并不是任何东西。
但是这样做:
COALESCE(MAX(number),0)
这意味着:从下一个列表中获取第一个非空的内容,因此,如果您的max
为空,则会给您0
答案 1 :(得分:19)
COALESCE有效,但IFNULL对我来说似乎更清楚。
IFNULL(MAX(number), 0)
如果第一个表达式不是NULL,则IFNULL()返回表达式本身,否则返回第二个参数。 IFNULL()返回一个数值或字符串值,具体取决于使用它的上下文。