Oracle常用函数
Oracle常用函数
1、NVL()函数
语法:NVL(expr1, expr2)
含义:如果expr1的计算结果为null值,则NVL()返回expr2。如果expr1的计算结果不是null值,则返回
expr1.expr1和expr2可以是任意一种数据类型。如果expr1与expr2的结果皆为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)
含义:如果expr1和expr2相等,则返回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)
含义:如果value和value1相等,则返回result1,如果value和value2相等,则返回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.如果为负数系统会报错。
注意:如果string2在string1中没有找到,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‘, 6, 2) from dual; -- is
select substr(‘This is a test‘, 6) from dual;-- is a test
select substr(‘This is a test‘, 0) from dual;-- This is a test
select substr(‘This is a test‘, -0) from dual; -- This is a test
select substr(‘TechOnTheNet‘, -3, 3) from dual; -- Net
select substr(‘TechOnTheNet‘, -6, 3) from dual; -- The
select substr(‘TechOnTheNet‘, -50, 3) from dual;-- 返回空
本文出自 “技术随笔” 博客,请务必保留此出处http://chengjiwang.blog.51cto.com/6263050/1406998