我有一个这样的表。我的问题是这个数据是嵌套存储的。我想用DB2脚本代码来修复这个问题。我用Python做了这个,但我不确定我们是否能用SQL做。| A级|B| C类|| - -|- -|- -|| 一个|十进制|一百二十三一百二三四一百二三四五|我想要这张table。| A级|B| C类|| - -|- -|- -|| 一个|业务连续性|一百二十三|| 一个|二进制编码|小行星一千二百三十四|| 一个|商业中心|小行星12345|
gfttwv5a1#
试试看:
with mytab (A, B, C) as ( values (1, 'BC BCD BCDE', '123 1234 12345') , (2, 'ab cd', '11 22 33') , (3, 'ef gh ij', '44 55') ) select t.*, x.tok_b, x.tok_c from mytab t , table ( select coalesce (c.seq, b.seq) as seq , b.tok as tok_b , c.tok as tok_c from xmltable ( 'for $id in tokenize($s, " +") return <i>{string($id)}</i>' passing t.b as "s" columns seq for ordinality , tok varchar (20) path '.' ) b full join xmltable ( 'for $id in tokenize($s, " +") return <i>{string($id)}</i>' passing t.c as "s" columns seq for ordinality , tok varchar (20) path '.' ) c on c.seq = b.seq ) x
| A级|B| C类|TOK_B(结束)|TOK_C文件|| - -|- -|- -|- -|- -|| 一个|十进制|一百二十三一百二三四一百二三四五|业务连续性|一百二十三|| 一个|十进制|一百二十三一百二三四一百二三四五|二进制编码|小行星一千二百三十四|| 一个|十进制|一百二十三一百二三四一百二三四五|商业中心|小行星12345|| 2个|AB CD|十一二十二三十三|AB公司|十一|| 2个|AB CD|十一二十二三十三|光盘|二十二个|| 2个|AB CD|十一二十二三十三||三十三个|| 三个|埃夫格日|四十四五十五|有效|四十四岁|| 三个|埃夫格日|四十四五十五|生长激素|五十五人|| 三个|埃夫格日|四十四五十五|i j||
1条答案
按热度按时间gfttwv5a1#
试试看:
| A级|B| C类|TOK_B(结束)|TOK_C文件|
| - -|- -|- -|- -|- -|
| 一个|十进制|一百二十三一百二三四一百二三四五|业务连续性|一百二十三|
| 一个|十进制|一百二十三一百二三四一百二三四五|二进制编码|小行星一千二百三十四|
| 一个|十进制|一百二十三一百二三四一百二三四五|商业中心|小行星12345|
| 2个|AB CD|十一二十二三十三|AB公司|十一|
| 2个|AB CD|十一二十二三十三|光盘|二十二个|
| 2个|AB CD|十一二十二三十三||三十三个|
| 三个|埃夫格日|四十四五十五|有效|四十四岁|
| 三个|埃夫格日|四十四五十五|生长激素|五十五人|
| 三个|埃夫格日|四十四五十五|i j||