首页 > 代码库 > Oracle常用函数

Oracle常用函数

 

 

Oracle常用函数

1、NVL()函数

         语法:NVL(expr1, expr2)

含义:如果expr1的计算结果为null值,则NVL()返回expr2。如果expr1的计算结果不是null值,则返回 

     expr1.expr1expr2可以是任意一种数据类型。如果expr1expr2的结果皆为null值,则NVL()返回 

            null

         返回值类型:字符型、日期型、日期时间型、数值型、货币型、逻辑型或null值。

      Eg1: select nvl(o.bill_aud_flag,‘0‘from order_item o;

 

2、NVL2()函数

          语法:NVL(expr1,expr2,expr3)

含义:如果expr1的计算结果为null值,则NVL()返回expr3,如果expr1的计算结果不为null值,则返

          回expr2.

 Eg1: select ename,sal,comm,nvl2(comm,‘sal+comm‘,‘sal‘) income from emp;

 

3、NULLIF()函数

          语法:NULLIF(expr1,expr2)

          含义:如果expr1expr2相等,则返回NULL,否则返回expr1.

          注意:expr1不能为null,否则会报错.

       Eg1: select ename,sal,comm,nullif(sal,comm ) result from emp;

 

4、DECODE()函数

          语法:decode(value,value1,result1,value2,result2,default_result)

含义:如果valuevalue1相等,则返回result1,如果valuevalue2相等,则返回result2,否

          则返回default_result.

 Eg1: select decode(o.service_offer_id,‘50040001‘,新装,‘50040002‘,退租,其它as 

      登记事项 from order_item o;

 

5、instr()函数

          语法:instr(string1,string2[,start_position[,nth_appearance]])

含义:string1à源字符串,要在此字符串中查找。string2à要在string1中查找的字符串. start_positionà代表从string1的哪个位置开始查找。此参数可选,如果省略默认为1.字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。nth_appearanceà代表要查找第几次出现的string2此参数可选,如果省略,默认为 1.如果为负数系统会报错。

         注意:如果string2string1中没有找到,instr函数返回0.

      Eg1: select instr(‘123,456,789‘,‘1234‘fromdual;-- 0

     select instr(‘123,456,789‘,‘12‘fromdual;-- 1

     select instr(‘123,456,789‘,‘123‘fromdual;-- 1

     select instr(‘123,456,789‘,‘789‘fromdual;-- 9

6、substr()函数

          语法:substr( string, start_position, [length] )

含义:stringà源字符串,要在此字符串中查找。start_positionà代表从string的哪个位置开

          始查找。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索。length

          可选参数,如果为空,代表查找到的整个字符串,如果不为空,代表位数。

       Eg1: select substr(‘This is a test‘62from dual; -- is

      select substr(‘This is a test‘6from dual;-- is a test

      select substr(‘This is a test‘0from dual;-- This is a test

      select substr(‘This is a test‘, -0from dual; -- This is a test

      select substr(‘TechOnTheNet‘, -33from dual; -- Net

      select substr(‘TechOnTheNet‘, -63from dual; -- The

      select substr(‘TechOnTheNet‘, -503from dual;-- 返回空

 

 

 

本文出自 “技术随笔” 博客,请务必保留此出处http://chengjiwang.blog.51cto.com/6263050/1406998