oracle一列中的数据有多个手机号码用逗号隔开,我如何分别取出来?
IDNUMBER1137xxxx,138xxxx取出来成IDNUMBER1137xxxx1138xxxx...
ID NUMBER
1 137xxxx,138xxxx
取出来成
ID NUMBER
1 137xxxx
1 138xxxx 展开
1 137xxxx,138xxxx
取出来成
ID NUMBER
1 137xxxx
1 138xxxx 展开
2个回答
展开全部
测试数据
create table test
(id int,
phone varchar2(200));
insert into test values (1,'13811111111,13311111111,13900000000');
insert into test values (2,'15811111111,15911111111,18800000000');
运行
select id,c from
(with t as (select id,phone c from test)
select id,substr(t.ca,instr(t.ca, ',', 1, c.lv) + 1,instr(t.ca, ',', 1, c.lv + 1) - (instr(t.ca, ',', 1, c.lv) + 1)) AS c
from (select id,',' || c || ',' AS ca,length(c || ',') - nvl(length(REPLACE(c, ',')),0) AS cnt FROM t) t,
(select LEVEL lv from dual CONNECT BY LEVEL <= 100) c where c.lv <= t.cnt)
order by id
结果
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询