Sql 计数行时null和0之间的差异

Sql 计数行时null和0之间的差异,sql,oracle,Sql,Oracle,我有一个问题如下 select owner, table_name,num_rows from all_tables 对于某些表,num_行为0,但对于某些表,num_行显示为null 我不明白这两者之间的区别 在什么情况下将出现null,何时显示0 谢谢我认为null在没有统计数据的表格上显示上次分析的也应为null。使用上次分析的尝试查询并检查它 select owner, table_name,num_rows, last_analyzed from all_tables; 在中,N

我有一个问题如下

select owner, table_name,num_rows from all_tables
对于某些表,
num_行
为0,但对于某些表,
num_行
显示为
null

我不明白这两者之间的区别

在什么情况下将出现
null
,何时显示0


谢谢

我认为
null
在没有统计数据的表格上显示<代码>上次分析的也应为
null
。使用上次分析的
尝试查询并检查它

select owner, table_name,num_rows, last_analyzed 
from all_tables;
在中,
NUM\u行
列用星号标记,该星号指向此注释:

只有在收集数据时,才会填充标有星号(*)的列 使用ANALYZE语句或DBMS_STATS对表进行统计 包裹


这个问题是因为这些表没有首先分析,您需要分析这些表,然后对它们应用统计信息,这可能会解决这个问题

看到有用的答案和评论后,我在互联网上搜索了一下,提出了以下问题

ANALYZE TABLE <TABLE_NAME> COMPUTE STATISTICS; 
分析表计算统计;
执行此查询后,对于之前显示为
null
的表,计数显示为0


谢谢你的投入

维切利和阿尔瓦罗都给出了相同的答案(可能是在同一时间,彼此独立),比你给出的更详细,而且比你早一个小时。为什么你需要发布他们答案的另一个不太详细的版本?由于这些原因,我失去了价值。