+ -
当前位置:首页 → 问答吧 → 请问如何根据字段值中的逗号来拆分,并把拆分的数据保存到新表中?

请问如何根据字段值中的逗号来拆分,并把拆分的数据保存到新表中?

时间:2011-11-11

来源:互联网

旧表tbl1
ID YUANGONG
10 6057863,6081791,6102168
11 6045986,6102305,6086817
12 6052191,6041969
13 6072396,6077206,6051936,6091173

如何根据YUANGONG字段中的“,”来拆分保存到新表tbl2中去?

新表tbl2

ID YUANGONG
10 6057863
10 6081791
10 6102168
11 6045986
11 6102305
11 6086817
.......
13 6091173

请大家帮忙看下

作者: yctcsms   发布时间: 2011-11-11

其实就是字符串的拆分。
有2种方式:
1. 在编程语言中进行处理。(建议采用这种方式,因为一般的编程语言都提供了相应的方法,可以直接用)
2. 写存储过程进行处理。

作者: LuiseRADL   发布时间: 2011-11-11

connect by
start with
递归调用。

作者: cutebear2008   发布时间: 2011-11-11

SQL code
insert into tb2(ID YUANGONG)
    
    select id,regexp_substr(YUANGONG,'[^,]+',1,n) 
        from tb1 left join 
        (select level from dual connect by level < 10/*这里自己调整一下,用SQL也能做到,但是没有太大意义*/)nn on 1=1
        where regexp_substr(YUANGONG,'[^,]+',1,n) is not null

作者: forgetsam   发布时间: 2011-11-11

谢谢!~ 最终用了下面这段

SQL code
insert into tb2(ID YUANGONG)
 select id,regexp_substr(YUANGONG,'[^,]+',1,n) 
        from tb1 left join 
        (select level,rownum n from dual connect by level < 15)nn on 1=1
        where  regexp_substr(YUANGONG,'[^,]+',1,n)  is not null; 

作者: yctcsms   发布时间: 2011-11-11