Sql 为什么空列在count-gate函数中的行为不同?
在oracle中,我们有一项任务来计算具有特定空值的行数 我有一个疑问:Sql 为什么空列在count-gate函数中的行为不同?,sql,oracle,Sql,Oracle,在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\u name)统计col\u name不为空的记录,而select count(*)统计所有记
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\u name)
统计col\u name
不为空的记录,而select count(*)
统计所有记录,而不考虑任何空值
这记录在:
如果指定expr,则COUNT返回expr不为null的行数。可以计算expr的所有行,也可以只计算expr的不同值
如果指定星号(*),则此函数将返回所有行,包括重复行和空行
COUNT从不返回null
两个结果都是正确的
select count(col\u name)
统计col\u name
不为空的记录,而select count(*)
统计所有记录,而不考虑任何空值
这记录在:
如果指定expr,则COUNT返回expr不为null的行数。可以计算expr的所有行,也可以只计算expr的不同值
如果指定星号(*),则此函数将返回所有行,包括重复行和空行
COUNT从不返回null
count
仅统计非空值。count
仅统计非空值。