今天来介绍一下,怎样数据库里把某一单元格中形如
1,2,3,4,5,6,7,8,9,0
这样子的数据,拆分为列:
创建测试表:
CREATE TABLE TEST_A
( ID NUMBER(12) NOT NULL, AA VARCHAR2(1024), BB VARCHAR2(1024) );
因为在数据库里,横向的数据大多都是这样滴

那么,我们的测试数据也增加一下复杂性,以便读者使用:

怎么能拆成列呢?
SELECT /*+parallel(a,32)*/ DISTINCT a.id,a.aa aa_col,
replace(replace(replace(REGEXP_SUBSTR (a.aa, '[^,]+', 1, LEVEL),'''',''),'(',''),')','') aa
FROM test_a a
CONNECT BY LEVEL <= LENGTH (a.aa) - LENGTH (REPLACE(aa, ',', '')) + 1 ;

网友评论