일하며 쿼리를 만드는데
컬럼값의 데이터를 콤마(,)를 기준으로 짤라서 각각 행으로 조회하도록 하는 쿼리가 필요하게 됨.
어떻게 해야하나 뒤적뒤적거려보니 답이 나오긴 하더라
나는 콤마(,)를 기준으로 짜르지만 다른사람은 다른 특수문자를 기준으로 짜를수도 있으니까
정규식을 이용해서 콤마(,)를 기준으로 짤라서 조회를 하게 됨.
예제
SELECT REGEXP_SUBSTR(VALUE, '[^,]+', 1, LEVEL) AS GOOD FROM ( SELECT '1,2,3,4' AS VALUE FROM DUAL ) CONNECT BY LEVEL <= LENGTH(REGEXP_REPLACE(VALUE, '[^,]+'))+1 |
REGEXP_SUBSTR함수를 이용하여 진행하였으며
CONNECT BY를 이용해서 콤마의 갯수를 구하고 그 갯수만큼 돌린다.
기존 콤마(,)가 있는 데이터 | 콤마(,)를 기준으로 짤라서 조회된 데이터 |
![]() |
![]() |
'공부방 > DataBase' 카테고리의 다른 글
Subquery returns more than 1 row (0) | 2024.12.19 |
---|---|
FETCH FIRST ROW (3) | 2024.07.06 |
[Oracle] 가로(행) 데이터를 세로(열)로 출력 (0) | 2023.12.14 |
[Oracle] MERGE기능 (0) | 2023.11.19 |
[Oracle] 월별 마지막 날짜 조회 (0) | 2023.08.06 |