by 김병훈 [SQL Query] [2015.06.27 09:33:12]
단일 행으로 된 아래의 칼럼을 | 를 기준으로 행으로 나타내려면 어떻게 해야 할까요?
regexp_substr 구문을 쓰면 될것 같은데... 도움 부탁합니다.
0000039685|1|2,0000055566|4|5
=>
0000039685 | 0000055566 |
1 | 4 |
2 | 5 |
with t as ( select '0000039685|1|2,0000055566|4|5' txt from dual) select decode(lv,1,col1,2,col2,3,col3) aa, decode(lv,1,col4,2,col5,3,col6) bb from ( select regexp_substr(txt1,'[^|]+',1,1) col1,regexp_substr(txt1,'[^|]+',1,2) col2,regexp_substr(txt1,'[^|]+',1,3)col3 ,regexp_substr(txt2,'[^|]+',1,1) col4,regexp_substr(txt2,'[^|]+',1,2) col5,regexp_substr(txt2,'[^|]+',1,3)col6 , lv from ( select regexp_substr(txt,'[^,]+',1,1) txt1, regexp_substr(txt,'[^,]+',1,2) txt2 from t),(select level lv from dual connect by level <= 3));