是否有解决方案如何计算视图中每个属性的NULL和NOT NULL记录数?在oracle中计算每个属性的空行数和非空行数
例如有50次,每一个有20个属性和我期待的结果看起来像(例如):
table_name -----Column_name---Nulls_count----Not_null_count------count(*)
T1 -----------------C1-------------------20---------------40-----------------------60
T1------------------C2-------------------11--------------49---------------------60
T1------------------C3-------------------25--------------35---------------------60
T2------------------C1-------------------0--------------100---------------------100
T2------------------C2-------------------40--------------60---------------------100
所有视图都存储在一个sys.all_views和列是在sys.all_tab_columns中,并且它们之间通过table_name字段进行链接。但是需要使用动态SQL或PL/SQL,因为每个属性都有一个疯狂的计数()空行,然后手动计算()非视图中相同属性的空行:) 有没有人面临这样的任务?我会感谢您的意见和帮助。
原来是你寻找Oracle特定的方式来计算列中的空值/非空值,而不实际读取数据? – EvilTeach
嗯,不完全是。我试图避免手动列出所有属性的count(*)或count(属性)函数。我只是想,是否可以创建一个变量为view_name和column_name的过程,并使用循环为选定表中的每个属性计算所有Nulls和Nulls行。如果有可能的话,请分享一些例子。预先感谢您.. –
我认为您可以从USER_TAB_COLS获取您想要的信息。去你并做好工作。 –