oracle 字符串截取substr和instr
- SUBSTR(string,start_position,[length]) 求子字符串,返回字符串
解释:string 元字符串
start_position 开始位置(从0开始)
length 可选项,子字符串的个数
For example:
位置是从1 开始
substr("ABCDEFG", 0); //返回:ABCDEFG,截取所有字符
substr("ABCDEFG", 1); //返回:ABCDEFG,截取所有字符
substr("ABCDEFG", -0); //返回:ABCDEFG,截取所有字符 -0=0,都是从左边截
substr("ABCDEFG", -0,1); //返回:A,从左截1位
substr("ABCDEFG", 2); //返回:CDEFG,截取从C开始之后所有字符
substr("ABCDEFG", -2); //返回:FG,从右边数第二位开始截取
substr("ABCDEFG", -2,1); //返回:F,从右边数第二位开始截取1位长度
substr("ABCDEFG", 0, 3); //返回:ABC,截取从A开始3个字符
substr("ABCDEFG", 0, 100); //返回:ABCDEFG,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。
substr("ABCDEFG", -3); //返回:EFG,注意参数-3,为负值时表示从尾部开始算起,字符串排列位置不变。
2. INSTR(string,subString,position,ocurrence)查找字符串位置 从1开始
解释:string:源字符串
subString:要查找的子字符串
position:查找开始位置(从1开始) 不可以是0,会找不见,-是从右边找
比如:-2 从右边第二位开始找,
ocurrence:源字符串中第几次出现的子字符串 不加这个参数默认是1
substr("ABCDEFG", -2,1); //返回:F,从右边数第二位开始截取1位长度
select instr('ABCDEFGABCDEFG','B',2) from dual 返回2
select instr('ABCDEFGABCDEFG','B',3) from dual 返回9
select instr('ABCDEFGABCDEFG','B',-1) from dual 返回9
select instr('ABCDEFGABCDEFG','B',-1,2) from dual 返回2
select instr('ABCDEFGABCDEFG','B',1,2) from dual 返回9
For example: 取A001HZJKQS 中间的001
substr('A001HZJKQS',2,instr('A001HZJKQS','HZJKQS',1)-2)
参考贴: https://www.cnblogs.com/cyblogs/p/5983612.html
推荐阅读
-
Oracle通过正则表达式分割字符串 REGEXP_SUBSTR的代码详解
-
Oracle截取JSON字符串内容的方法
-
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
-
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
-
SQL中Charindex和Oracle中对应的函数Instr对比
-
php字符串截取函数mb_substr用法实例分析
-
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
-
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
-
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
-
oracle截取字符(substr)检索字符位置(instr)示例介绍