Oracle将多行某列转成一行某列,一行某列转成多行某列


select wm_concat(line_id) from dcr_decision_opinion group by bill_id

    select *
             from (with temp as (select wm_concat(line_id) a,bill_id
                                 from dcr_decision_opinion group by bill_id
                                  )
                    select regexp_substr(a, '[^,]+', 1,rn) aa,bill_id
                      from temp t1 ,
                           (select distinct level rn
                              from temp ta
                            connect by rownum <=
                                       (select length(a) -
                                               length(replace(a,
                                                              ',',
                                                              '')) + 1
                                          from temp tb
                                         where ta.bill_id = tb.bill_id)) t2  )where aa is not null order by bill_id

 

更简单的形式:

 select * from ( select regexp_substr(member_names, '[^;]+', 1, t2.rn) DcrNumberName,
                           regexp_substr(regexp_substr(member_names,  '[^;]+',  1,   t2.rn),  '\d+') userid,
                           role_name,
                           Bill_Id,
                           line_id,
                           CREATED_BY,
                           CREATED_BY_NAME,
                           LAST_UPDATED_BY,
                           LAST_UPDATED_BY_NAME
                      from tableName t1,
                          (select rownum rn from tableName where rownum<=50)t2
                     where enabled_flag = 'Y' and role_code != 'DecisionGroupRole_10'   ) where   DcrNumberName is not null order by line_id

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值