oracle的常用函数
2016-03-14 08:58
453 查看
1、substr(字符串,截取开始位置,截取长度) //返回截取的字【从1开始计数】
测试:
select substr('Hello World',-3,3) value from dual;
输出为 'rld' 负数(-i)表示截取的开始位置为字符串右端向左数第i个字符
select substr('Hello World',1) value from dual;
输出为 'Hello World' 即从开始截到末尾
2、instr('源字符串' , '目标字符串' ,'开始位置','第几次出现')【从1开始计数】
说明:instr(sourceString,destString,start,appearPosition)
其中sourceString代表源字符串;
destString代表要从源字符串中查找的子串;
start代表查找的开始位置,这个参数可选的,默认为1;
appearPosition代表想从源字符中查找出第几次出现的destString,这个参数也是可选的, 默认为1
如果start的值为负数,则代表从右往左进行查找,但是位置数据仍然从左向右计算。
返回值为:查找到的字符串的位置。 (返回值为0,则源字符串中没有制定的目标字符串字符)
测试:
SQL> select instr('abcdefgh','de') position from dual;
POSITION
----------
4
从1开始算 d排第四所以返回4
SQL>select instr('abcdefghbc','bc',3) position from dual;
POSITION
----------
9
从第3个字符开始算起 第3个字符是c,所以从3开始以后的字符串找查找bc,返回9
---------------------------
从第1个字符开始,查找第2次出现子串的位置
SQL> select instr('qinyinglianqin','qin', 1, 2) position from dual;
POSITION
----------
12
3、replace('将要更改的字符串','被替换掉的字符串','替换字符串')//返回替换之后的字符串
测试:
select replace ('111222333444','222','888') from dual;
输出为 '111888333444'
4、区别:length求得是字符长度,lengthb求得是字节长度。
----------------------------------------------------------------------------------------------------
SQL> select sysdate from dual;
SYSDATE
--------------
26-9月 -05
SQL> select length(sysdate) from dual;
LENGTH(SYSDATE)
---------------
9
SQL> select lengthb(sysdate) from dual;
LENGTHB(SYSDATE)
----------------
10
length返回的是字符数
lengthb返回的是字节数
汉字“月”在length时,返回的时1
而在lengthb时返回的时2
5、NVL函数
NVL(expr1,expr2)
含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。
6、sign(n)
取数字n的符号,大于0返回1,小于0返回-1,等于0返回0
示例:
一、select sign( 100 ),sign(- 100 ),sign( 0 ) from dual;
SIGN(100) SIGN(-100) SIGN(0)
———- ———- ———-
1 -1 0
二、a=10,b=20
则sign(a-b)返回-1
7、······················
测试:
select substr('Hello World',-3,3) value from dual;
输出为 'rld' 负数(-i)表示截取的开始位置为字符串右端向左数第i个字符
select substr('Hello World',1) value from dual;
输出为 'Hello World' 即从开始截到末尾
2、instr('源字符串' , '目标字符串' ,'开始位置','第几次出现')【从1开始计数】
说明:instr(sourceString,destString,start,appearPosition)
其中sourceString代表源字符串;
destString代表要从源字符串中查找的子串;
start代表查找的开始位置,这个参数可选的,默认为1;
appearPosition代表想从源字符中查找出第几次出现的destString,这个参数也是可选的, 默认为1
如果start的值为负数,则代表从右往左进行查找,但是位置数据仍然从左向右计算。
返回值为:查找到的字符串的位置。 (返回值为0,则源字符串中没有制定的目标字符串字符)
测试:
SQL> select instr('abcdefgh','de') position from dual;
POSITION
----------
4
从1开始算 d排第四所以返回4
SQL>select instr('abcdefghbc','bc',3) position from dual;
POSITION
----------
9
从第3个字符开始算起 第3个字符是c,所以从3开始以后的字符串找查找bc,返回9
---------------------------
从第1个字符开始,查找第2次出现子串的位置
SQL> select instr('qinyinglianqin','qin', 1, 2) position from dual;
POSITION
----------
12
3、replace('将要更改的字符串','被替换掉的字符串','替换字符串')//返回替换之后的字符串
测试:
select replace ('111222333444','222','888') from dual;
输出为 '111888333444'
4、区别:length求得是字符长度,lengthb求得是字节长度。
----------------------------------------------------------------------------------------------------
SQL> select sysdate from dual;
SYSDATE
--------------
26-9月 -05
SQL> select length(sysdate) from dual;
LENGTH(SYSDATE)
---------------
9
SQL> select lengthb(sysdate) from dual;
LENGTHB(SYSDATE)
----------------
10
length返回的是字符数
lengthb返回的是字节数
汉字“月”在length时,返回的时1
而在lengthb时返回的时2
5、NVL函数
NVL(expr1,expr2)
含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。
6、sign(n)
取数字n的符号,大于0返回1,小于0返回-1,等于0返回0
示例:
一、select sign( 100 ),sign(- 100 ),sign( 0 ) from dual;
SIGN(100) SIGN(-100) SIGN(0)
———- ———- ———-
1 -1 0
二、a=10,b=20
则sign(a-b)返回-1
7、······················
相关文章推荐
- oracle表空间查询维护命令大全之二(undo表空间)
- 南京六合RAID5硬盘离线ORACLE数据库成功恢复
- 南京鼓楼oracle旧数据库还原出错,数据恢复成功案例
- Oracle cursor example
- Oracle RMAN 恢复控制文件到指定的路径
- oracle数据库对象
- jmeter中基于oracle的JDBC Request的使用
- 创建表空间及用户
- ORACLE体系结构
- oracle的hint总结(二)
- Oracle RAC启动CRS-1028,CRS-0223错误
- Oracle RAC备份与恢复
- oracle 使用触发器更新插入列的id
- oracle的索引类型及sql优化总结(一)
- Oracle常用脚本
- RedHat6.5 安装Oracle 12c RAC
- [置顶] oracle存储过程
- oracle并非所有变量都已绑定
- oracle截取字符(substr)检索字符位置(instr)工作使用
- oracle批量执行文件脚本sql