了解MySQL中的SUM(NULL)

匿名之一

通常,当NULL涉及任何方程式时,整个结果就会分解为NULL(例如SELECT 2 + NULL + 5return NULL

在以下情况下相同:

SELECT SUM(NULL)返回NULLProposition #1

SUM用于聚合列并且该列也可以包含NULL时会发生什么

基于proposition #1为什么输出不会导致的原因NULL

CREATE TABLE t (age INT NULL);

INSERT INTO t (age)  VALUES (15),(20), (NULL), (30), (35);

SELECT 
SUM(age)
FROM t;

输出: 100

但是我在期待NULL

在这种情况下,MySQL是否会默默地跳过那些NULL值?

http://sqlfiddle.com/#!9/3f99bb/2

e4c5

嗯,在手册中有解释

SUM([DISTINCT] expr)
返回expr之和。如果返回集没有行,则SUM()返回NULL。DISTINCT关键字只能用于对expr的不同值求和。

如果没有匹配的行,SUM()将返回NULL。

更重要的是,它还说:

本节介绍对值集进行操作的组(汇总)函数。除非另有说明,否则组函数将忽略NULL值。

换句话说,SUM的行为就像这样,因为这就是它的定义方式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章