【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分

posted @ 2020-01-01 17:41  逆火狂飙  阅读(594)  评论(0编辑  收藏  举报
生当作人杰 死亦为鬼雄 至今思项羽 不肯过江东