아래 마농님이 답변주신 이중 split 에 에러가 나네요 0 1 795

by 열심히 [2018.11.09 13:35:07]


마농님이 답을 주셨는데 실행을

시키니 에러가 납니다.

이리저리 해보고 있는데.

원리를 모르니 답이 안나오네요

by 봉 [2018.11.09 16:35:22]

오라클 버전 문제 같네요
listagg, regexp_count 11g에서만 되네요

10g 버전

WITH temp AS
(
SELECT 'A1|A2|A3|A4 , B1|B2|B3|B4 , C1|C2|C3|C4' str FROM dual
UNION ALL SELECT 'F1|F2|F3|F4 , G1|G2|G3|G4' FROM dual
UNION ALL SELECT 'H1|H2|H3|H4' FROM dual
UNION ALL SELECT null FROM dual
)
SELECT rn, str
     , WM_CONCAT(REGEXP_SUBSTR(str, '[^|]+', 1, 1)) v1
     , WM_CONCAT(REGEXP_SUBSTR(str, '[^|]+', 1, 2)) v2
  FROM (
      SELECT rn, str
                 , REGEXP_SUBSTR(str, '[^, ]+', 1, lv) v
                 , lv
              FROM (SELECT ROWNUM rn, str FROM temp)
                 , (SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 99)
             WHERE lv(+) <= length(str) - length(replace(str, ',', ''))
      )
 GROUP BY rn, str

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입