拆分split逗号间隔的表字段数据

--建表
create table test(id int,str varchar2(100))
--加入数据
select * from test

id         str
1          2,4
2          4
3          2,8,2

--要求最终得到如下结果:
id        str
1        2
1        4
2        4
3        2
3        8
3        2

--脚本如下(这里需要加上level,否则会把拆分后的数据去重):
SELECT distinct id,REGEXP_SUBSTR (str,'[^,]+',1,LEVEL) as "str",level
FROM TEST
CONNECT BY REGEXP_SUBSTR (str,'[^,]+',1,LEVEL) IS NOT NULL
order by id,level;

--查询结果:
ID        str        LEVEL
1        2        1
1        4        2
2        4        1
3        2        1
3        8        2
3        2        3

问题得解,又学会了一个用法

转载于:https://www.cnblogs.com/xiehq/p/5604435.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值