[求助]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