在 oracle 中,我们有一个任务来计算具有特定空列的行数。
我有一个查询:
select count(MY_COL) from My_Table where MY_COL is null;
这将返回零结果。
为什么这会返回零结果和查询
select count(*) from My_Table where MY_COL is null;
返回正确的结果?
两个结果都是正确的。
select count(col_name)
计算col_name
不为空的记录,同时select count(*)
计算所有记录,而不考虑任何空值。
这记录在大溪地:
如果您指定expr,则 COUNT 返回 expr 不为空的行数。您可以计算所有行,也可以只计算expr的不同值。
如果您指定星号 (*),则此函数返回所有行,包括重复行和空行。
COUNT 从不返回 null。