整理一些常用的截取、查找字符函数:
1、查找某一个字符串中某一个字符(串)出现的次数
SELECT LENGTH(REGEXP_REPLACE(REPLACE(‘anne<br>lily<br>jane‘, ‘<br>‘, ‘@‘), ‘[^@]+‘, ‘‘)) COUNT FROM DUAL; --返回2
2、判断某个字符是否在源字符串出现过
select instr(‘anne<br>lily<br>jane‘,‘<br>‘,1) from dual --返回5
3、当某个字符在源字符串中出现多次时,去掉最后一个(前提是该重复字符在源字符串最后一定会出现)
SELECT SUBSTR(‘anne<br>lily<br>jane<br>‘,1,(LENGTH(‘anne<br>lily<br>jane<br>‘)-LENGTH(‘<br>‘))) FROM dual --返回anne<br>lily<br>jane
4、当某个特殊符号在源字符串中出现多次,只截取第一次出现位置后面多少位
select substr(‘adssf.anne.aaaa‘,1,instr(‘adssf.anne.aaaa‘,‘.‘,1)+3) from dual --返回adssf.ann
select substr(‘asdfANNE-asdfe-123456‘
,instr(‘asdfANNE-asdfe-123456‘,‘-‘,1)+1
,length(‘asdfANNE-asdfe-123456‘)-instr(‘asdfANNE-asdfe-123456‘,‘-‘,1)+1
) from dual --返回asdfe-123456