- SUBSTR(string,start_position,[length]) 求子字符串,返回字符串
解释:string 元字符串
start_position 开始位置(从0开始)
length 可选项,子字符串的个数
For example:
位置是从 开始
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)