带有NULL的聚合函数的行为不符合预期

时间:2019-05-12 00:34:32

标签: sql sqlite

使用SQLite,我正在尝试简单的MAX()

SELECT MAX(100, NULL);

这将返回null。应该不是100吗?

根据documentation

  

当且仅当组中没有非NULL值时,聚合max()才返回NULL。

100是一个非空值,因此在这种情况下,我不希望从null返回MAX()。我是否误解了文档?而且,如何通过忽略集合中的MAX()值或将它们视为零null来使用0

1 个答案:

答案 0 :(得分:4)

那不是聚合版本。

来自the right documentation

  

多参数max()函数返回具有最大值的参数,如果任何参数为NULL,则返回NULL。

  

请注意,当max()具有2个或更多参数时,它是一个简单函数,但如果仅给出单个参数,则它作为聚合函数运行。