1

在 oracle 中,我们有一个任务来计算具有特定空列的行数。

我有一个查询:

select count(MY_COL) from My_Table where MY_COL is null;

这将返回零结果。

为什么这会返回零结果和查询

select count(*) from My_Table where MY_COL is null;

返回正确的结果?

4

1 回答 1

6

两个结果都是正确的。

select count(col_name)计算col_name不为空的记录,同时select count(*)计算所有记录,而不考虑任何空值。

这记录在大溪地

如果您指定expr,则 COUNT 返回 expr 不为空的行数。您可以计算所有行,也可以只计算expr的不同值。

如果您指定星号 (*),则此函数返回所有行,包括重复行和空行。

COUNT 从不返回 null。

于 2013-09-06T22:19:02.190 回答