sql提取字段问题

image.png请问类似这种,oracle数据库如何提取出小武、小赵、小王?,并且可以将这个字段插入相关其它字段的查询表中

image.png类似这种

FineReport 帆软用户o8Hv4jPkHk 发布于 2022-10-24 15:26
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
CD20160914Lv8专家互助
发布于2022-10-24 15:27(编辑于 2022-10-24 15:31)

Oracle根据逗号拆分字段内容转成多行_EstherLty的博客-CSDN博客_oracle按逗号拆分列为多行

with tmp as (select 1as guid, '中国,美国人民,小日本' as  st_responsible

        from dual)

select * from (

    select guid, regexp_substr(st_responsible, '[^,]+', 1, level) responsible

        from tmp

        connect by level <= regexp_count(st_responsible, ',') + 1

        and guid = prior guid

        and prior dbms_random.value is not null )

----------结果----------

image.png

最佳回答
0
IceBall09Lv6中级互助
发布于2022-10-25 11:11

要是数据有限,倒是可以直接这样写

select * from (       

select enbid, REGEXP_SUBSTR(v_list, '[^,]+', 1, lv) v_value

  from (select 736021 as enbid, '5,51' as v_list from dual

        union all

        select 186168 as enbid, '53,49,50' as v_list from dual

        union all

        select 749409 as enbid, '7,68,51,11' as v_list from dual) a,

       (SELECT LEVEL lv FROM dual CONNECT BY LEVEL < 32) b

 WHERE b.lv <= 10 ) where v_value is not null;

————————————————

版权声明:本文为CSDN博主「老码伏枥驿站」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/jean852001/article/details/109338337

image.png

  • 3关注人数
  • 374浏览人数
  • 最后回答于:2022-10-25 11:11
    请选择关闭问题的原因
    确定 取消
    返回顶部