【oracle开发】实现截取带分隔符的字符串
在oracle中实现截取带分隔符的字符串,例如我有一个字符串数据为: a,b,c,d 那么我需要的得到的数据是
a
b
c
d
类似这种形式
操作方法
- 01
首先看一下该方法,然后再来逐步分析该方法中的一些要点。
- 02
首相看到SQL的最里层是我们构造的数据,也就是select 'a;b;c;d;e' as agentskills from dual
- 03
用递归查询创建一个10条记录的SELECT LEVEL l FROM DUAL CONNECT BY LEVEL <= 10
- 04
利用之前的两个结果集创建笛卡尔积,并且对你要拆分的字符串前后也加上分隔符。
- 05
用regexp_replace函数将我们字符串的中内容去掉,只剩下分隔符(不含之前加上的前后的分隔符),用length算一下有几个分隔符,只有加1与我们之前造的递归去比,此目的是过滤掉多余的笛卡尔积的数据。
- 06
最有利用substr和instr配合着我们造的递归数据来取到字符串中的每一个值
赞 (0)