多语言展示
当前在线:548今日阅读:103今日分享:49

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

在oracle中实现截取带分隔符的字符串,例如我有一个字符串数据为: a,b,c,d 那么我需要的得到的数据是abcd类似这种形式
工具/原料

oracle,sqlplus

方法/步骤
1

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

2

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

3

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

4

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

5

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

6

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

推荐信息