oracle中,一些專屬的函數用法

來源:互聯網
上載者:User

在MS Sql Server下,寫sql寫習慣了,突然需要在Oracle下寫sql,說實話原則上沒多大區別,可是有些Oracle內帶函數如果不瞭解,不去用,有時候還挺麻煩。我接下來準備寫個小總結,把做項目中涉及到的一些Oracle函數列舉出來,一方面為了自己以後尋找方便(本人年紀大了,腦袋不好用了,呵呵);另一方面也希望給大家一個方便,通過討論可以互相學習,汲取各種經驗。開始了:

1.NULLIF()

SELECT ename, NULLIF (comm, 0) COMM FROM emp;
ENAME            COMM
----------       ----------
SMITH
ALLEN             300
WARD              500
JONES
MARTIN           1400
BLAKE
CLARK
SCOTT
這個函數一看就知道是啥意思,如果comm=0,結果集裡可以用空代替0。

2.COALESCE()

SELECT ename, COALESCE(comm, 0) COMM FROM emp;
ENAME            COMM
----------       ----------
SMITH               0
ALLEN             300
WARD              500
JONES               0
MARTIN           1400
BLAKE               0
CLARK               0
SCOTT               0
這個函數意思其實跟上個差不多,只不過可以任意替換想要在結果集裡顯示的值。如下:

SELECT ename, COALESCE(to_char(comm), 'None') COMM FROM emp;
ENAME            COMM
----------       ----------
SMITH            None
ALLEN            300
WARD             500
JONES            None
MARTIN           1400
BLAKE            None
CLARK            None
SCOTT            None
你看一樣吧。

3.NVL()

此函數比較簡單,就是判斷是否為空白,可以設定某個值,比如nvl(a,0,1),意思就是如果a為空白,顯示0,否則為1。

4.lpad() 和 rpad()

select lpad(ename,10,'*'),rpad (ename,10,'>') from emp;

LPAD(ENAME,10,'*')   RPAD(ENAME,10,'>')
-------------------- --------------------
*****SMITH           SMITH>>>>>
*****ALLEN           ALLEN>>>>>
******WARD           WARD>>>>>>
*****JONES           JONES>>>>>
****MARTIN           MARTIN>>>>
*****BLAKE           BLAKE>>>>>
*****CLARK           CLARK>>>>>
*****SCOTT           SCOTT>>>>>
******KING           KING>>>>>>
****TURNER           TURNER>>>>
*****ADAMS           ADAMS>>>>>

LPAD(ENAME,10,'*')   RPAD(ENAME,10,'>')
-------------------- --------------------
*****JAMES           JAMES>>>>>
******FORD           FORD>>>>>>
****MILLER           MILLER>>>>

已選擇14行。
從結果可以看出,lpad()函數的作用是:如果列的長度沒有達到指定的值,則在列的左邊不上相應的 字元。rpad()函數是向右補全。

5.greatest ()  和 least()

select greatest (1,2,3,4,5) ,least(0,1,2,3,4,5) from dual

GREATEST(1,2,3,4,5) LEAST(0,1,2,3,4,5)
------------------- ------------------
                  5                  0

從結果可以看出,greatest ()函數的作用是:找出列表中最大的值,而least()是找出列表中最小的值。

找個時間繼續擴充,希望大家也協助我繼續擴充。

相關文章

聯繫我們

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