--第一段
SELECT substr('1233***6795',
0,
(select instr('1233***6795', '***', 1, 1) from dual) - 1)
from dual;
--第二段
SELECT substr('1233***6795',((select instr('1233***6795', '***', 1, 1)
from dual) + 3),
(select length('1233***6795') from dual)) from dual;
select instr('1233***6795', '***', 1, 1) from dual
1.SUBSTR(string,start_position,[length]) 求子字符串,返回字符串
substr("ABCDEFG", 0); //返回:ABCDEFG,截取所有字符 substr("ABCDEFG", 2); //返回:CDEFG,截取从C开始之后所有字符 substr("ABCDEFG", 0, 3); //返回:ABC,截取从A开始3个字符 substr("ABCDEFG", 0, 100); //返回:ABCDEFG,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。 substr("ABCDEFG", -3); //返回:EFG,注意参数-3,为负值时表示从尾部开始算起,字符串排列位置不变。 |
2.INSTR(string,subString,position,ocurrence)查找字符串位置
INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符串为'CORPORATE FLOOR', 目标字符串为'OR',起始位置为3,取第2个匹配项的位置;返回结果为 14 '
lengthb(string)计算string所占的字节长度 :返回字符串的长度,单位是字节
length(string)计算string所占的字符长度 :返回字符串的长度,单位是字符