首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > IBM DB2 >

[]DB2 用SQL将一条数据中用逗号隔开的字段分成多条记录

2013-01-18 
[求助]DB2 用SQL将一条数据中用逗号隔开的字段分成多条记录各位大神好,小弟遇到一个问题,DB2中如何用。SQL

[求助]DB2 用SQL将一条数据中用逗号隔开的字段分成多条记录
各位大神好,
    小弟遇到一个问题,DB2中如何用。SQL将一条数据中用逗号隔开的字段分成多条记录。
示例如下,
seq(integer)    test(varchar)  customer(varchar)   cinvcode(varchar)  ……
1                 a              4                   2
2                 a,b            3                   2
3                 a,b,c          6                   1
4                 b,c,d,e,f      1                   5

期望结果,
seq(integer)    test(varchar)  customer(varchar)   cinvcode(varchar)  ……
1                 a              4                   2
2                 a              3                   2
2                 b              3                   2
3                 a              6                   1
3                 b              6                   1
3                 c              6                   1
4                 b              1                   5
4                 c              1                   5
4                 d              1                   5


4                 e              1                   5
4                 f              1                   5

需要转换的数据量非常大,请各位高人给小弟些指点,不胜感激。
[解决办法]
示例:
with n(str, ori, pos) as (

 values ('abc,bc,cd,d,ff,', 1, posstr('abc,bc,cd,d,ff,', ','))

 union all 

 select  str,  pos+1, locate(',', str, pos+1)

 from n 

 where locate(',', str, pos+1)>0)

 select str, ori, pos, substr(str, ori, pos-ori) as result from n

热点排行