Oracle 截取、查找字符函数(持续更新)

时间:2024-09-13 11:05:26

整理一些常用的截取、查找字符函数:

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