原创---Oracle 函数大全(持续更新)

最近在学习的时候频繁的用到oracle函数,所以整理一下,方便以后使用。

1、nvl(a,b) 如果a不为null 则返回a,如果a为null则返回b;
      nvl2(a,b,c) ,如果a不为null 则返回b,如果a为null则返回c;

2、DECODE函数相当于一条件语句(IF).它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。区别于SQL的其它函数,DECODE函数还能识别和操作空值. 其具体的语法格式如下: DECODE(input_value,value,result[,value,result…][,default_result]);

解释如下:

ECODE(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)

DECODE(字段,比较1,值1,比较2,值2,.....,比较n,值n缺省值)  
该函数的含义如下:
IF 条件=值1 THEN
RETURN(翻译值1)
ELSIF 条件=值2 THEN
RETURN(翻译值2)
......
ELSIF 条件=值n THEN
RETURN(翻译值n)
ELSE
RETURN(缺省值)
END IF

实例:decode(str,1,yes,no)假如变量str等于1,则str返回yes,若不等于则返回no,若要实现其他算法可继续增加。

3、substr,取得字符串中指定起始位置和长度的字符串   substr( string, start_position, [ length ] )

这个比较崩溃的是我经常和.net中的substring混淆,比如,这个substr(0,6)代表从第0个字符开始取6个但是substr(1,6)和这个substr(0,6)是一样的,也就是说,oracle中下标是从1开始而并非.net中数组的下标从0开始的,这个貌似大家需要注意。

-----------------------------------------暂时更新到此,随用随时更新(2012-3-13 23:12)------------------------

------------------------------------------(2012-3-16 11:47更新)------------------------------------------------------

4、minus 函数:Minus返回的总是左边表中的数据,它返回的是差集。注意:minus有剃重作用

     来源(:http://blog.csdn.net/greenappple/article/details/7073349)这个csdn上面介绍的感觉挺详细的,而且还有minus 、not exists 和not in 三个的效率的差别,这三个中minus效率最高,not exists次之,not in 最低,大家遇到大批量数据查询异同的时候可以选择此。用法

select id from table1 minus select id2 from table2---返回左边-右边的左边的值

5、题外话:insert into 是把数据插入到一个已经存在的表中,select into 是新建一个表来保存查询出来的数据

------------------------------------------(2012-3-20 01:25更新)------------------------------------------------------

6、

oracle 两个时间相减默认的是天数*24 为相差的小时数

oracle 两个时间相减默认的是天数*24*60 为相差的分钟数

oracle 两个时间相减默认的是天数*24*60*60 为相差的秒数

例:sysdate:2012-3-20 01:26结果为(1.44055555555556)

select to_number(sysdate -
                 to_date('2012-3-20 0:00:00', 'yyyy-mm-dd hh24:mi:ss'))*24
  from dual

posted @ 2012-03-13 23:13  倚楼听雨  阅读(654)  评论(1编辑  收藏  举报