REGEXP_SUBSTR 사용시 구분자로 구분한 값이 공백인 경우 처리 방법 3 630

by 동희 [SQL Query] [2024.01.11 11:51:11]


안녕하세요...REGEXP_SUBSTR 사용시 구분자로 구분한 값이 공백인 경우에는 매칭순번??이 제대로 안되는것 같은데요..

WITH TMP AS (
  SELECT '120,,,,,,002' TXT FROM DUAL
   UNION ALL
  SELECT '120,A,,C,,,002' TXT FROM DUAL
   UNION ALL
  SELECT '120,A,B,C,D,E,002' TXT FROM DUAL
)
SELECT
   REGEXP_SUBSTR(TXT, '[^,]+', 1, 1) LVL1
 , REGEXP_SUBSTR(TXT, '[^,]+', 1, 2) LVL2
 , REGEXP_SUBSTR(TXT, '[^,]+', 1, 3) LVL3
 , REGEXP_SUBSTR(TXT, '[^,]+', 1, 4) LVL4
 , REGEXP_SUBSTR(TXT, '[^,]+', 1, 5) LVL5
 , REGEXP_SUBSTR(TXT, '[^,]+', 1, 6) LVL6
 , REGEXP_SUBSTR(TXT, '[^,]+', 1, 7) LVL7
FROM TMP;

다음의 결과가 이렇게 나오는 데요..
LVL1 LVL2 LVL3 LVL4 LVL5 LVL6 LVL7
120 002          
120 A C 002      
120 A B C D E 002

 

실제 원하는 결과는 다음과 같습니다.

LVL1 LVL2 LVL3 LVL4 LVL5 LVL6 LVL7
120           002
120 A   C     002
120 A B C D E 002

 

구분자로 구분시 값이 공백이어도 매칭순번은 구분자의 순서데로 가져오게 할 수 있을까요??