隨筆-67  評論-522  文章-0  trackbacks-0
              Oracle數據庫函數非常多,平時常用的只有那么幾種,大象根據實際項目情況,列舉幾個最常用的函數綜合運用的例子。
              我這里所說的是針對Oracle數據庫特有的函數,不包括SQL本身就有的。幾個常用的Oracle函數:nvlto_charto_dateto_numbertrim、length、substr等等,當然我這是根據自己的使用情況進行列舉,如果有遺漏的,還請大家幫忙補充,給出具體的例子,謝謝。
              select nvl(sum(c.f_factplan),0) f_factplan from pay_certificate c left join pay_reporting r on r.f_id=c.f_repid where to_number(r.f_year||trim(to_char(r.f_month,'09')))<(select to_number(r.f_year||trim(to_char(r.f_month,'09'))) yearmonth from pay_certificate t left join pay_reporting r on r.f_id=t.f_repid where t.f_id=7and c.f_ctrid=15
              上面這條sql語句綜合運用了好幾個函數,這里,我們不考慮這條SQL語句的業務,只單純的從SQL出發。to_char(r.f_month,'09'),將f_month字段中的月份每個都轉換為兩位長度,這種寫法可能是因為f_month字段定義成了數字型,但是在查詢中,又需要將它與年份組合成一個形如yyyymm格式的數字來進行大小的比較,這個例子就是如此,trim去掉組合后前后空格,然后用||操作符將它與年組合起來轉換為數字。
              select * from dtaq_data d inner join dtaq_data_info i on d.info_id=i.info_id where d.point_id = 1199 and i.info_type='T' and d.write_date <= to_date('2008-11-21 23:59:59','yyyy-mm-dd hh24:mi:ss')
              這條SQL語句主要運用的就是to_date函數,記注意這里的小時、分、秒,與我們平時的yyyy-MM-dd HH:mm:ss的寫法不一樣,我們現在的時間一般都是使用24小時制,所以這里要寫成hh24,如果是12小時制就去掉24
              select a.f_id,a.f_name from orgaizeation a inner join (select case when length(o.f_nodecode)>8 then substr(o.f_nodecode,1,8else o.f_nodecode end f_nodecode from orgaizeation o where o.f_id = 23) b on a.f_nodecode=b.f_nodecode order by b.f_nodecode
              這里用到了條件判斷,when...then...elselength函數判斷字符串的長度,substr對字符串進行截取,注意起始位置的索引為1,這和我們一般認為的0開始不一樣。
              這幾個例子都很簡單,前面提到的幾個Oracle函數都有運用,我在實際開發中,這也是用的最多的,其它的還請各位大大分享一下自己的寶貴經驗,互相交流,共同提高。
              本文為菠蘿大象原創,如要轉載請注明出處。http://bolo.blogjava.net/
          posted on 2010-09-30 23:00 菠蘿大象 閱讀(3616) 評論(3)  編輯  收藏 所屬分類: Database

          評論:
          # re: 幾個常用的Oracle函數及實例運用 2010-12-28 15:44 | xichengfeihu
          你的博客雖更新不勤,但每發必屬精品,
          學習之后收獲很大,非常感謝  回復  更多評論
            
          # re: 幾個常用的Oracle函數及實例運用 2010-12-29 09:09 | 菠蘿大象
          @xichengfeihu
          謝謝你的支持,最近這幾個月確實沒時間寫,準備在先的那個框架上再加個切面,實現登入登出的日志記錄,寫了一半一直拖到現在,我會努力更新的,請耐心等待  回復  更多評論
            
          # re: 幾個常用的Oracle函數及實例運用 2011-05-21 15:59 | RoyPayne
          恩,學習了。  回復  更多評論
            
          主站蜘蛛池模板: 临泽县| 沐川县| 泽普县| 呼和浩特市| 泸水县| 台山市| 姚安县| 霍州市| 兰西县| 岳阳市| 万源市| 喜德县| 晋宁县| 禹州市| 祁东县| 连城县| 九台市| 乌恰县| 汕尾市| 墨玉县| 平阴县| 怀来县| 道孚县| 丹阳市| 凤山市| 新丰县| 杭锦旗| 阳山县| 怀柔区| 烟台市| 格尔木市| 盐边县| 黄骅市| 建德市| 冷水江市| 万源市| 崇州市| 南岸区| 四川省| 始兴县| 莱州市|