替换最后一次出现的子串

Jer*_*nch 2 oracle plsql oracle11g

鉴于此字符串:

.ABC、.123、.FGH、.QDG

如何最有效地使用 PL/SQL 进行输出(注意“,和”):

abc、123、fgh 和 qdg

到目前为止,我已经得到了LOWER(REPLACE('.ABC,.123,.FGH,.QDG', '.', ' ')),其收益率

abc, 123, fgh, qdg

如何在“fgh,”之后但在“qdg”(“fgh, and qdg”)之前得到“and”?我必须使用INSTR()and SUBSTR(),还是有一个函数可以用“和”替换最后一个空格?

xQb*_*ert 5

建立在你已经使用regexp_replace过的基础上......使用instr

with cte as(
select LOWER(REPLACE('.ABC,.123,.FGH,.QDG', '.', ' ')) as val from dual)
select regexp_replace(val,' ',' and ',instr(val ,' ',-1))
from cte;
Run Code Online (Sandbox Code Playgroud)

或者regexp_replace(val,', ',' and ',instr(val ,', ',-1))如果你也想去掉最后一个逗号。

在此处输入图片说明