Oracle基本函數總結

來源:互聯網
上載者:User

(一)字元函數

Upper

SELECT Upper ('abcde') FROM dual  結果:ABCDE

 

Lower

SELECT lower('ABCDE') FROM dual 結果:abcde

 

Initcap

SELECT Initcap ('AAA') FROM dual 結果:Aaa

SELECT Initcap ('aaa') FROM dual 結果:Aaa

 

Concat

SELECT Concat ('a', 'b') FROM dual 結果:ab

Select 'a' || 'b' from dual 結果:ab

 

Substr

Select substr('abcde',0,3) from dual 結果:abc

 

Select substr('abcde',-2,3) from dual 結果:de

第二個參數為字串的第幾位,預設從0開始。當為負數時,是從右側開始。第三個參數為要取得字串的總長度。

 

Length

Select length('abcde') from dual 結果:5

 

Replace

Select replace('abcde','a','A') from dual 結果:Abcde

 

Instr

Select instr('Hello World','W') from dual 結果:8

Select instr('Hello World','w') from dual 結果:0

如果在第一個參數中存在第二個參數,則返回第一個遇到的匹配參數的位置,該方法區分大小寫。

 

Lpad

select lpad('Smith',10,'*') from dual 結果:*****Smith

 

Rpad

select rpad('Smith',10,'*') from dual 結果:Smith*****

 

Trim

select trim(' Mr Smith ') from dual 結果:Mr Smith

 

(二)數值函數

Round

select round(412,-2) from dual;  結果:400

select round(412.713) from dual;結果:413

select round(412,2) from dual;結果:412

select round(412.713,2) from dual;結果:412.71

取整運算,第二個參數指定了取小數點後的幾位,如果是5則進一。

 

Mod

select Mod(198,2) from dual 結果:0

 

Trunc

select trunc(412.13,-2) from dual  結果:400

select trunc(412.13,2) from dual   結果:412.13

select trunc(412.13,1) from dual   結果:412.1

select trunc(412.53) from dual     結果:412

取整運算,第二個參數指定了取小數點後的幾位,不進位。

 

(三)日期函數

Months_between

select months_between(sysdate+35,sysdate) from dual

結果:1.16129032258065

用第一個參數的時間減去第二個參數的時間,得到月份的差。

 

Add_months

select add_months(sysdate,1) from dual

當前月份加了一個月

 

interval  

select   sysdate   +   interval   '3 '   year   from   dual

當前日期加了三年

select   sysdate   +   interval   '3-2 '   year   to   month   from   dual

當前日期加了三年兩個月

select   sysdate   +   interval   '10   2:10 '   day   to   minute   from   dual

當前日期加了 十天兩小時十分鐘

 

Next_day

select next_day(sysdate,'星期一') from dual

選擇了下一個星期一的日期

 

Last_day

select last_day(sysdate) from dual

選擇了這個月的最後一天

 

(四)轉換函式

To_char

select to_char(sysdate,'yyyy-MM-dd') from dual; 結果:2010-10-30

 

To_number

select to_number('13')+to_number('14') from dual;結果:27

 

To_date

Select to_date('2012-1-1','yyyy-MM-dd') from dual;結果:2012-1-1

 

(五)通用函數

NVL

select nvl('string',0) from dual 結果:string

select nvl('',0) from dual 結果:0

 

NullIF

select nullif('abc','abc') from dual 結果:空

select nullif('abc','abcd') from dual 結果:’abc

 

NVL2

select nvl2('a','b','c') from dual 結果:b

select nvl2('','b','c') from dual 結果:c

如果第一個參數不為空白,則返回第二個參數;否則,返回第三個參數

 

Coalesce

select COALESCE('','','abc','') from dual 結果:abc

select COALESCE('','','','') from dual     結果:空

依次考察各個參數,如有非空則停止並返回該值。

 

Case運算式

select case 4

         when 10 then

          '財務部'

         when 20 then

          '研發部'

         when 30 then

          '銷售部'

         else

          '未知部門'

       end 部門

  from dual

結果:未知部門

 

Decode運算式

select decode(10, 10, '財務部', 20, '研發部', 30, '銷售部', '未知部門') 部門

  from dual;結果:財務部

 

select decode(2,10,'財務部',decode(3,20,'研發部',decode(4,30,'銷售部','未知部門'))) from dual; 結果:未知部門

第一個參數是否等於第二個參數,如果等於,則返回第三個參數,否則返回第四個參數,可用於行轉列。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.