我需要关于如何实现以下内容的建议。Oracle根据列值将行拆分为多行
我有类似这样的一个表:
WITH CTE (slno, column1, column2, column3, slno2, column4, column5, column6, column7, column8, column9, column10, column11) AS (
SELECT 10000, 'a', 'aa', ';', 10000, 'aaa', 'aaaa', 'aaaaa','aaaaaa', ';', 'aaaaa2', 'aaaaa12', 'aaaa22' FROM DUAL UNION
SELECT 10001, 'b', 'bb', ';', 10001, 'bbb', 'bbbb', 'bbbb', 'bbbbbb', ';', 'bbbbb2', 'bbbbb12', 'bbb22' FROM DUAL UNION
SELECT 10001, 'c', 'cc', ';', 10001, 'ccc', 'cccc', 'cccc', 'cccccc', ';', 'ccccc2', 'ccccc12', 'ccc22' FROM DUAL
)
表看起来像
SLNO COLUMN1 COLUMN2 COLUMN3 SLNO2 COLUMN4 COLUMN5 COLUMN6 COLUMN7 COLUMN8 COLUMN9 COLUMN10 COLUMN11
10000 a aa ; 10000 aaa aaaa aaaaa aaaaaa ; aaaaa2 aaaaa12 aaaa22
10002 b bb ; 10002 bbb bbbb bbbb bbbbbb ; bbbbb2 bbbbb12 bbb22
10003 c cc ; 10003 ccc cccc cccc cccccc ; ccccc2 ccccc12 ccc22
我需要每行此表分割和分割应在第3和发生8(人为添加分隔符)
最后,输出应该看起来像:
Column Column Column Column Column Column
10000 a aa ;
10000 aaa aaaa aaaaa aaaaaa ;
aaaaa2 aaaaa12 aaaa22
10001 b bb ;
10001 bbb bbbb bbbb bbbbbb ;
bbbbb2 bbbbb12 bbb22
10001 c cc ;
10001 ccc cccc cccc cccccc ;
ccccc2 ccccc12 ccc22
将分号添加到具有分隔符和标记的行应分开。 任何想法?
第3列8是静态的? –
是的,它们是静态的 –