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