Oracle 一些函數的使用

來源:互聯網
上載者:User

標籤:round   ring   convert   com   mp3   world   date   isp   sum   

nvl 函數

      通過查詢獲得某個欄位的合計值,如果這個值位null將給出一個預設的預設值 

 
selectnvl(sum(t.dwxhl),1)fromtb_jhdetwherezydm=-1

  這裡關心的nvl的用法,nvl(arg,value)代表如果前面的arg的值為null那麼返回的值為後面的value

ESCAPE

escape關鍵字經常用於使某些特殊字元,如萬用字元:‘%’,‘——’轉義為他們原來的字元的意義,被定義的逸出字元通常使用‘\’,但是有時候也可以使用其他符號。

逸出字元為d,沒有實現轉義功能;

SQL>select*fromtestwheretestlike‘sddd_%‘escape‘d‘;

  尋找包含所有‘_‘的欄位。

 
SQL>select*fromtestwheretestlike‘%\_%‘escape‘\‘;

 連接字串 concat || 

  
--concat只能串連兩個字串,串連多個需要嵌套調用不方便SQL>selectconcat(‘aa‘,‘bb‘)fromdual; CONCAT(‘AA‘,‘BB‘)-----------------aabb--||直接連接多個字串SQL>select‘aa‘||‘bb‘||‘cc‘fromdual; ‘AA‘||‘BB‘||‘CC‘----------------aabbcc 

 

 

字串截取 

    substr(字串,截取開始位置,截取長度) //返回截取的字 

substr(‘HelloWorld‘,0,1)//返回結果為‘H‘*從字串第一個字元開始截取長度為1的字串

  長度計算函數 length()與lengthb()

SQL>selectlength(‘新春快樂‘)fromdual;LENGTH(‘新春快樂‘)------------------SQL>selectlengthb(‘新春快樂‘)fromdual;LENGTHB(‘新春快樂‘)------------------- 區別:length求得是字元長度,    lengthb求得是位元組長度。 ?

 INSTR函數

-- 在指定的字串中檢索指定字元所在的索引位置

 
  SQL>selectinstr(‘hello‘,‘l‘)fromdual;INSTR(‘HELLO‘,‘L‘)------------------在hellowolrd中截取出來world字串?SQL>selectsubstr(‘helloworld‘,instr(‘helloworld‘,‘‘))fromdual; SUBSTR------world 已選擇1行。 SQL>selectsubstr(‘helloworld‘,instr(‘helloworld‘,‘‘)+1)fromdual; SUBST-----world 已選擇1行。  lpad() rpad()參數1:指定原始的串 參數2:固定長度 參數3:填充的字元 
SQL>selectlpad(‘jack‘,10,‘$‘)fromdual;LPAD(‘JACK‘,10,‘$‘)----------$$$$$$jackselectrpad(‘jack‘,10,‘$‘)fromdual;-----------jack$$$$$$
 

 

 Next_day

計算出來下一個星期一是幾號?

 
selectnext_day(sysdate,‘星期一‘)fromdual;

round 四捨五入

NVL (expr1, expr2):

    expr1為NULL,返回expr2;不為NULL,返回expr1。注意兩者的類型要一致 
NVL2 (expr1, expr2, expr3) :

    xpr1不為NULL,返回expr2;為NULL,返回expr3。expr2和expr3類型不同的話,expr3會轉換為expr2的類型 
NULLIF (expr1, expr2):

    相等返回NULL,不等返回expr1

decode()

    主要作用:將查詢結果翻譯成其他值(即以其他形式表現出來,以下舉例說明);

使用方法:

Select decode(columnname,值1,翻譯值1,值2,翻譯值2,...值n,翻譯值n,預設值)

From talbename

Where …

其中columnname為要選擇的table中所定義的column,

·含義解釋:

decode(條件,值1,翻譯值1,值2,翻譯值2,...值n,翻譯值n,預設值)的理解如下:

  if(條件==值1)thenreturn(翻譯值1)elsif(條件==值2)thenreturn(翻譯值2)......elsif(條件==值n)thenreturn(翻譯值n)elsereturn(缺省值)endif  

註:其中預設值可以是你要選擇的column name 本身,也可以是你想定義的其他值,比如Other等;

表複製快速的建立的表結構?

    create table emp10 as select * from emp where 1=12;    insert into emp30 select * from emp where deptno=30;

 

Oracle 一些函數的使用

聯繫我們

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