Oracle中substr函数和instr函数的结合使用
2017-12-21 11:22
489 查看
1、instr函数是一个字符串处理函数,它在Oracle/PLSQL中是返回子字符串在源字符串中的位置。
函数定义如下:/* * 返回子字符串在源字符串中的位置(字符串位置从1开始,而不是从0开始) * @param string 源字符串 * @param substring 子字符串 * @param position 检索位置,可省略(默认为1),参数为正时,从左向右检索,参数为负时,从右向左检索 * @param occurrence 检索子字符串出现的次数,可省略(默认为1),值只能为正整数,否则会报错 * @return 返回子字符串在源字符串中出现的位置(没找到返回0) */ instr(string, substring, position, occurrence);
例如:
SELECT INSTR('hello world', 'l') FROM DUAL; --结果:3 SELECT INSTR('hello world', 'l', 5) FROM DUAL; --结果:10 SELECT INSTR('hello world', 'l', -1) FROM DUAL; --结果:10 SELECT INSTR('hello world', 'l', 2, 2) FROM DUAL; --结果:4 SELECT INSTR('hello world', 'l', -3, 3) FROM DUAL; --结果:0
2、substr函数是一个字符串截取函数,它返回的是截取的字符串。
函数定义如下:/* * 截取字符串(字符串位置从1开始,而不是从0开始) * @param string 源字符串 * @param position 检索位置,参数为正时,从左向右检索,参数为负时,从右向左检索 * @param substring_length 要截取的长度,可省略(默认从position位开始截取全部),值小于1时返回空字符串 * @return 返回截取的字符串 */ substr(string, position, substring_length);
例如:
SELECT SUBSTR('hello world', 2) FROM DUAL; --结果:ello world SELECT SUBSTR('hello world', -2) FROM DUAL; --结果:ld SELECT SUBSTR('hello world', 4, 4) FROM DUAL; --结果:lo w SELECT SUBSTR('hello world', -4, 3) FROM DUAL; --结果:orl SELECT SUBSTR('hello world', 4, -1) FROM DUAL; --结果:空字符串
3、可以将SUBSTR和INSTR结合使用来实现截取字符串中特定字符前后的字符串
例如:--<1> 截取“hello,world”字符串中“,”分隔符之前的字符串 SELECT SUBSTR('hello,world', 1, INSTR('hello,world', ',')-1) FROM DUAL; --结果:hello --<2> 截取“hello,world”字符串中“,”分隔符之后的字符串 SELECT SUBSTR('hello,world', INSTR('hello,world', ',')+1) FROM DUAL; --结果:world --<3> 截取“hello,world,HH”字符串中第1次出现的“,”字符和第2次出现的“,”字符之间的字符串 SELECT SUBSTR('hello,world,HH', INSTR('hello,world,HH', ',',1)+1, INSTR('hello,world,HH', ',', 2)-1) FROM DUAL; --结果:world
相关文章推荐
- oracle之 nvl 和 decode结合使用实例
- PL/SQL Developer结合oracle精简客户端使用配置
- Oracle中REGEXP_SUBSTR函数的使用
- Oracle Secure Backup管理员指南 第4章 结合使用RMAN与Oracle安全备份
- ORACLE实例恢复过程详细分析--使用dump、BBED等多种工具结合分析
- PL/SQL Developer结合oracle精简客户端使用配置
- oracle中instr函数的使用
- 4#Oracle的instr函数使用
- oracle中instr函数和substr函数的浅用法
- PL/SQL Developer结合oracle精简客户端使用配置
- oracle之replace结合substr的使用
- oracle的LISTAGG函数 和 REGEXP_SUBSTR函数的使用
- oracle (replace+substr)函数结合使用
- ORACLE实例恢复过程详细分析--使用dump、BBED等多种工具结合分析
- oracle 参数游标和存储过程的结合使用
- Oracle的instr函数使用
- ORACLE 中OVER()结合rank(),dense_rank(),rownumber() 使用方法
- Oracle中instr函数使用方法
- [置顶] 深入理解和使用Oracle中with as语句以及与增删改查的结合使用