【oracle开发】实现截取带分隔符的字符串

作者:落知秋 | 创建时间: 2023-04-12
在oracle中实现截取带分隔符的字符串,例如我有一个字符串数据为: a,b,c,d 那么我需要的得到的数据是 a b c d 类似这种形式...
【oracle开发】实现截取带分隔符的字符串

操作方法

首先看一下该方法,然后再来逐步分析该方法中的一些要点。

首相看到SQL的最里层是我们构造的数据,也就是select 'a;b;c;d;e' as agentskills from dual

用递归查询创建一个10条记录的SELECT LEVEL l FROM DUAL CONNECT BY LEVEL <= 10

利用之前的两个结果集创建笛卡尔积,并且对你要拆分的字符串前后也加上分隔符。

用regexp_replace函数将我们字符串的中内容去掉,只剩下分隔符(不含之前加上的前后的分隔符),用length算一下有几个分隔符,只有加1与我们之前造的递归去比,此目的是过滤掉多余的笛卡尔积的数据。

最有利用substr和instr配合着我们造的递归数据来取到字符串中的每一个值

点击展开全文

更多推荐