Oracle實際項目中遇到的函數應用

來源:互聯網
上載者:User
1.Decode函數
直接介紹如何用.
SELECT id,name
DECODE(flag,'1','True','0','false',NULL,'None','Invalid') 
             欄位 | 判斷欄位值,顯示具體含義          | 預設值
FROM UserInfo;

decode(m.totalcount,null,0,m.totalcount)
在進行報表統計的時候,有的欄位無記錄,這時候需要把統計置為0,如果有記錄返回本身值.

2.Case語句用法.
select rownum as rn ,TERMINATEID,CMPTSCODE ,ERRLEVEL, ERRCODE ,ERRSTATE,
(CASE T.ERRSTATE WHEN '0' THEN '未發生故障' WHEN '1' THEN '有故障未申報' WHEN '2' THEN '有故障已申報' WHEN '3' THEN '已處理' END)
ERRSTATENAME,ERRTIME ,REMARK  from WX_CMPTSSTATE T
和Decode用法差不多,但是這個比較和IF-ELSE接近,符合大家的習慣寫法.

3.樹查詢
--查詢位置 011 以下的所有孩子
select * from ( select wk_pst.*,level from wk_pst
connect by prior pos_code =prt_pos_code
start with pos_code='011'
) a
where a.pos_code<>'011'

--偽列Level的應用
select * from ( select wk_pst.*,level as ll from wk_pst
connect by prior pos_code =prt_pos_code
start with pos_code='011'
) a
where a.pos_code<>'011' and a.ll =3  --倒著查,注意遞迴條件的寫法,僅僅置換了一下而已,注意偽列的變化
select wk_pst.*,level as ll from wk_pst
connect by prior prt_pos_code=pos_code 
start with pos_code='111'
order by pos_code

4 SQL中的CONVERT Oracle中的to_Char和cast
SQL中的用法:
SELECT CONVERT(varchar(30),getdate(),101) now
Oracle:
SELECT to_char(SYSDATE,'yyyy-mm-dd hh24:mi:ss')
SELECT Cast(欄位 as 類型)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.