
一張表中存放了海量資料,我只想查看其中有資料的欄位怎么寫oracle的sql陳述句
圖中標紅三個是有資料的,沒標的是沒資料的,
如果不知道哪些列有資料,哪些列沒有資料,而且表欄位一百多個,怎么寫sql更有效?
uj5u.com熱心網友回復:
如果資料是靜態的,而且你說的欄位是空的指的是所有行的某個欄位都是null值,那么可以考慮曲線救國:先收集全欄位統計資訊,比如:exec dbms_stats.gather_table_stats(user,'T',cascade=>true,degree=>8,method_opt=>'for all columns');
然后查詢兩個資料字典:user_tables與user_tab_col_statistics,如果user_tab_col_statistics.NUM_NULLS欄位與user_tables.NUM_ROWS相等,那么說明user_tab_col_statistics.COLUMN_NAME對應的欄位就是沒有插入過資料的,也就是說這些欄位是你不想要看的沒有資料的欄位,其他的即是你想要的。
uj5u.com熱心網友回復:
實際上我覺得你排除這些空值欄位的需求沒有太大的意義……
uj5u.com熱心網友回復:
大致懂了,資料庫設計之初,欄位根據需求設計的很多,經過常年累月的運行程式之后,發現公司并不涉及這么廣泛的業務,資料庫中的欄位是冗余的,不配套的,留著無用uj5u.com熱心網友回復:
哈哈,這真是通病,一開始的胃口都好大

如果是為了精簡表結構,倒是做這個事情有意義了,雖然空值不會占用物理空間,但至少表結構能清爽很多~
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/41702.html
標籤:開發
上一篇:序列號生成值不變的問題
下一篇:關于遞回或迭代的問題
