oracle将以逗号分隔字符串转多行

不做详解,直接上图。

SELECT T.NAME, T.TESTSTR FROM TEST2 T;

 

SELECT DISTINCT T.NAME,
       REPLACE(REGEXP_SUBSTR(T.TESTSTR, '[^,]+', 1, LEVEL), ',', ' ') TESTSTR
FROM TEST2 T  
WHERE 1 = 1 
      CONNECT BY LEVEL <= (LENGTH(T.TESTSTR) - LENGTH(REPLACE(T.TESTSTR, ',', '')) + 1);

-- Create table TEST2
create table TEST2
(
  id      NUMBER(10),
  name    VARCHAR2(100),
  teststr VARCHAR2(100)
)

insert into TEST2 (ID, NAME, TESTSTR)
values (2, '徐风年', '洛阳,贾家嘉,姜姒,鱼幼薇,裴南苇,红薯');

insert into TEST2 (ID, NAME, TESTSTR)
values (1, '李淳罡', '剑开天门,两袖青蛇,绿袍儿,剑来');

insert into TEST2 (ID, NAME, TESTSTR)
values (3, '武器', '绣冬,春雷,玄甲,青梅,竹马,朝露,春水,桃花,峨眉,朱雀,黄桐,蚍蜉,金缕,太阿');

insert into TEST2 (ID, NAME, TESTSTR)
values (4, '温华', '不胜,折剑出江湖');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值