WORK/DB

오라클 콤마를 기준으로 가로 또는 세로로 (열, 행) 컬럼 추가하기

im 수캥이 2020. 6. 16. 20:17

SELECT

    WEEK

FROM WEEK_INFO

 

위와 같은 쿼리에 아래와 같은 데이터가 있다고 가정해보자.

 

WEEK
1,2,3,4,5

월,화,수,목,금 이라는 형태로 볼 수 있는데 이 값을 콤마 기준으로 잘라 가로로, 또는 세로로 조회 해 보자.

 

========== 가로로 컬럼 만들기 ==========

SELECT

     WEEKREGEXP_SUBSTR(WEEK, '[^,]+', 1,1 ) AS MON

   , WEEKREGEXP_SUBSTR(WEEK, '[^,]+', 1,2 ) AS TUE

   , WEEKREGEXP_SUBSTR(WEEK, '[^,]+', 1,3 ) AS WED

   , WEEKREGEXP_SUBSTR(WEEK, '[^,]+', 1,4 ) AS THU

   , WEEKREGEXP_SUBSTR(WEEK, '[^,]+', 1,5 ) AS FRI

FROM WEEK_INFO

 

위와같이 검색하면 아래와 같이 조회가 된다.

 

MON TUE WED THU FRI
1 2 3 4 5

 

========== 세로로 컬럼 만들기(오라클10G 이상부터)  ==========

 

SELECT REGEXP_SUBSTR(WEEK,'[^,]+', 1, LEVEL) WEEK FROM WEEK_INFO
CONNECT BY REGEXP_SUBSTR(WEEK, '[^,]+', 1, LEVEL) IS NOT NULL

 

위와같이 검색하면 아래외 같이 조회가 된다.

 

WEEK
1
2
3
4
5