记录数据库某列有空值(Null)时Oracle与Mysql分别有没有统计空值。
一、Mysql数据库
1.Mysql表
2.查询结果
结果:通过对id,age字段的查询可以发现,当某列中存在Null时在一个函数内(比如图中的 sum(id)+sum(age) 不在一个函数内,计算结果统计了存在Null的行数据)统计过程中是不统计为Null的整行数据的。
二、Oracle数据库
1.Oracle表
2.查询结果
结果:与Mysql执行结果是一样的。
总结:无论是Oracel还是Mysql数据库,在执行count()、sum()、avg()时会有以下情况:
查询情况 | 是否统计null |
---|---|
count(*/1) | 当为*或者1时,统计null |
count(列名) | 只要存在null,均不会统计null |
sum(列名) | 只要列中存在null,均不会统计null |
sum(列n+列m) | 列n,列m任意一列中存在null时,均不会统计存在null的数据行 |
avg(列名) | 只要列中存在null,均不会统计null |
avg(列n+列m) | 列n,列m任意一列中存在null时,均不会统计存在null的数据行 |