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

Don*_*ant 28 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
Run Code Online (Sandbox Code Playgroud)

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

SELECT (MAX(number)+1) number WHERE date LIKE "2014%" 
Run Code Online (Sandbox Code Playgroud)

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

Nan*_*nne 44

好吧,因为没有像2014年那样的日期,你会期望为null,因为没有任何东西实际上并不是任何东西.

但这样做:

COALESCE(MAX(number),0)
Run Code Online (Sandbox Code Playgroud)

这意味着:从下一个列表中获取第一个非null的东西,所以如果你max是null,它会给你0


Dem*_*a ツ 20

COALESCE有效,但IFNULL对我来说更清晰.

IFNULL(MAX(number), 0)
Run Code Online (Sandbox Code Playgroud)

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