create table TXST_DOT
(
id NUMBER,
cols VARCHAR2(14)
);
insert into TXST_DOT (ID, COLS)
values (1, '1234,4567,7412');
insert into TXST_DOT (ID, COLS)
values (2, '8522,2258');
insert into TXST_DOT (ID, COLS)
values (3, '4568,5522');
insert into TXST_DOT (ID, COLS)
values (4, '6577,8566');
commit;
SELECT *
FROM (SELECT T.ID,
REGEXP_SUBSTR(T.COLS, '[^,]+', 1, B.RN) AS COLS
FROM TXST_DOT T,
(SELECT ROWNUM AS RN
FROM DUAL
CONNECT BY ROWNUM <= 10) B)
WHERE COLS IS NOT NULL
ORDER BY ID
10为最大的列数,如果要拆的列比较少 可以改成3
本站文章除注明转载/出处外,均为本站原创,转载前请务必署名,转载请标明出处 最后编辑时间为: 2021/04/16 17:22:28