ORACLE資料統計0的處理
阿新 • • 發佈:2019-01-01
大概是前一週去見客戶,他要弄了年終統計報表,從系統中所有臺帳的基礎資料去統計總算、容量等資料。
拿到統計模板一看,傻眼了需要統計近百項,而且每一項都需要單獨使用SQL去查詢。
起初 為了方便查詢資料,中間檢視套用檢視,結果發現我嵌套了3層檢視,效率實在不敢恭維。
後來 為了提高效率,就把中間的檢視去掉,改為從表查詢資料,結果每個項需要查詢3~4表,效率比第一次提升不少。其實查詢這種統計資料,千萬不能檢視套用檢視,那效率就沒的說了。
程式實現,發現使用count(*)統計總數的時候,如沒有則顯示0;使用sum()統計,則沒有不顯示,這樣我前臺頁面上有的沒有資料顯示0,有的沒有資料不顯示,不統一也不美觀。
改造1,在查詢資料的java端操作,不是我不想在 我的檢視中修改,我先後試驗過decode、nvl、case甚至使用if then else 語句,都沒有把這個討厭的0去掉,沒有部分只好在java端進行for迴圈了,這樣效率也不怎麼樣,白白多了2層迴圈,鑑於檢視寫的比較合理,這樣的速度客戶居然能接受。
晚上睡覺就想,怎麼才能把0去掉了,基本上把oracle的函式都想一遍了,甚至想自己寫的函式實現,後來想到replace函式,結果使用成功了。
但是發現使用replace的效率好像沒有使用改造1的方案快?
不知各位還有沒有別的方法處理0這個問題,歡迎大家討論一下。