oracle自带函数用法总结


在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()是找出列表中最小的值。

  找个时间继续扩充,希望大家也帮助我继续扩充


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3