oracle 中一些独特的函数用法
2012-06-15 14:05
447 查看
在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()是找出列表中最小的值。
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()是找出列表中最小的值。
相关文章推荐
- oracle一些常用函数用法
- oracle中,一些独有的函数用法
- oracle一些高级函数的用法
- Oracle和Mysql中Sql语句中的一些函数用法区别
- oracle中,一些独有的函数用法
- oracle 数据库一些单行函数的简单用法
- Oracle 一些常用函数的用法(收集)
- oracle易忘函数用法(5)
- ORACLE-over()函数用法
- Oracle 中 decode 函数用法
- 不定时更新自己用到的oracle 比较有用的sql语句和函数用法
- Oracle的substr函数简单用法
- Oracle和SQL Server的一些区别(函数和存储过程)
- oracle中trim,ltrim,rtrim函数用法
- Oracle trunc()函数的用法
- Oracle的substr函数简单用法
- Oracle的alter的一些用法
- oracle 日期一些函数
- Oracle ltrim() rtrim() 函数详细用法
- oracle Lpad()函数和Rpad()函数的用法