Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 为什么空列在count-gate函数中的行为不同?_Sql_Oracle - Fatal编程技术网

Sql 为什么空列在count-gate函数中的行为不同?

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(*)统计所有记

在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(*)
统计所有记录,而不考虑任何空值

这记录在:

如果指定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
仅统计非空值。