oracle 0值处理判断,ORACLE数据统计0的处理
大概是前一周去見客戶,他要弄了年終統(tǒng)計報表,從系統(tǒng)中所有臺帳的基礎數(shù)據(jù)去統(tǒng)計總算、容量等數(shù)據(jù)。
拿到統(tǒng)計模板一看,傻眼了需要統(tǒng)計近百項,而且每一項都需要單獨使用SQL去查詢。
起初? 為了方便查詢數(shù)據(jù),中間視圖套用視圖,結果發(fā)現(xiàn)我嵌套了3層視圖,效率實在不敢恭維。
后來 為了提高效率,就把中間的視圖去掉,改為從表查詢數(shù)據(jù),結果每個項需要查詢3~4表,效率比第一次提升不少。其實查詢這種統(tǒng)計數(shù)據(jù),千萬不能視圖套用視圖,那效率就沒的說了。
程序實現(xiàn),發(fā)現(xiàn)使用count(*)統(tǒng)計總數(shù)的時候,如沒有則顯示0;使用sum()統(tǒng)計,則沒有不顯示,這樣我前臺頁面上有的沒有數(shù)據(jù)顯示0,有的沒有數(shù)據(jù)不顯示,不統(tǒng)一也不美觀。
改造1,在查詢數(shù)據(jù)的java端操作,不是我不想在 我的視圖中修改,我先后試驗過decode、nvl、case甚至使用if then else 語句,都沒有把這個討厭的0去掉,沒有部分只好在java端進行for循環(huán)了,這樣效率也不怎么樣,白白多了2層循環(huán),鑒于視圖寫的比較合理,這樣的速度客戶居然能接受。
晚上睡覺就想,怎么才能把0去掉了,基本上把oracle的函數(shù)都想一遍了,甚至想自己寫的函數(shù)實現(xiàn),后來想到replace函數(shù),結果使用成功了。
但是發(fā)現(xiàn)使用replace的效率好像沒有使用改造1的方案快?
不知各位還有沒有別的方法處理0這個問題,歡迎大家討論一下。
總結
以上是生活随笔為你收集整理的oracle 0值处理判断,ORACLE数据统计0的处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 存储怎么使用,Oracle
- 下一篇: oracle10g 6.0更改5.2,O