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

时间:2016-08-29 07:25:53

标签: sql oracle

我的查询如下

select owner, table_name,num_rows from all_tables
某些表格num_rows

为0,但有些表num_rows显示为null

我没有区分这两者。

null会出现什么情况,何时显示0?

谢谢

4 个答案:

答案 0 :(得分:4)

我认为null显示在没有统计信息的表格上。 Last_analyzed也应为null。尝试使用Last_analyzed进行查询并进行检查。

select owner, table_name,num_rows, last_analyzed 
from all_tables;

答案 1 :(得分:2)

ALL_TABLES reference NUM_ROWS列中标有星号,指向此注释:

  

标记为星号(*)的列仅在您收集时填充   使用ANALYZE语句或DBMS_STATS对表进行统计   封装

答案 2 :(得分:1)

这个问题因为那些表没有先分析你需要分析那些表然后统计数据适用于它们,这可能会解决问题。

答案 3 :(得分:0)

在看到有用的答案和评论之后,我在互联网上进行了一些搜索以提出以下查询

ANALYZE TABLE <TABLE_NAME> COMPUTE STATISTICS; 

执行此查询后,对于那些之前显示null的表,计数显示为0。

感谢您的所有投入。