Oracle中将一条记录(某字段中为合并的信息)拆分成多条记录

本文介绍了如何在Oracle数据库中利用REGEXP_SUBSTR函数将含有逗号分隔的字段拆分为多条记录,并通过SELECT...LEVEL子句进行数据转换。示例脚本展示了如何将T_B_INFO_TEST表中的记录转化为T_b_INFO_RESULT表的格式,涉及到了行生成技巧和正则表达式的应用。
摘要由CSDN通过智能技术生成

将这种数据 select * from T_B_INFO_TEST

转化成这种数据:select * from  T_b_INFO_RESULT



转化数据的脚本:

insert into T_b_INFO_RESULT
select q.c_month,
       regexp_substr(q.prod_code, '[^,]+', 1, q.rn) prod_code,
       q.c_soto,
       q.kpi_value
  from (select t.c_month, t.prod_code, t.c_soto, t.kpi_value, t1.rn
          from (select a.c_month,
                       a.prod_code,
                       a.c_soto,
                       a.kpi_value,
                       length(a.prod_code) -
                       length(replace(a.prod_code, ',')) + 1 rn
                  from t_B_info_test a) t,
               (select level rn
                  from dual
                connect by level <=
                           (select max(length(b.prod_code) -

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值