【Oracle】Count(*) 与Count(列) 在遇到空值时的不同表现
试问,如果有一张表有两个字段,均可为空,插入两条首个字段为空的记录,再插入两条第二字段为空的记录,问count(*)和count(列)结果如何?
答案:count(*)是正常的四条,而count(列)因为空值的影响均为两条,下面是实验结果:
看来只有count(非空列)才与count(*)等效。
附:本例用到的表和数据:
CREATE TABLE testcount ( name NVARCHAR2(60), val NVARCHAR2(60) ) insert into testcount(name) values('andy'); insert into testcount(name) values('bill'); insert into testcount(val) values('41'); insert into testcount(val) values('42');
--END-- 2020年1月1日17点40分