본문 바로가기
공부방/DataBase

[Oracle] 콤마로 분리된 문자열을 여러 행으로 변환(REGEXP_SUBSTR)

by SmartCow 2024. 3. 29.

일하며 쿼리를 만드는데

컬럼값의 데이터를 콤마(,)를 기준으로 짤라서 각각 행으로 조회하도록 하는 쿼리가 필요하게 됨.

어떻게 해야하나 뒤적뒤적거려보니 답이 나오긴 하더라

 

나는 콤마(,)를 기준으로 짜르지만 다른사람은 다른 특수문자를 기준으로 짜를수도 있으니까

정규식을 이용해서 콤마(,)를 기준으로 짤라서 조회를 하게 됨.

예제

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' 카테고리의 다른 글

[Oracle] 가로(행) 데이터를 세로(열)로 출력  (0) 2023.12.14
[Oracle] MERGE기능  (0) 2023.11.19
[Oracle] 월별 마지막 날짜 조회  (0) 2023.08.06
[Oracle] 프로시저 내용 조회  (0) 2023.02.24
[mariaDB] mariaDB 란?  (0) 2022.12.03