어제 포스팅하였던 내용( [오라클]N개의 ROW의 값을 1개의 ROW로 조회 )의 반대 상황이 생깁니다
CSV DATA와 같이 어떤 구분자 (ex, ‘,’ )로 이루어진 하나의 String을 기준으로 N Row로 만들어서 조회해야 할 때
‘CONNET BY’와 ‘REGEXP-SUBSTR’ 함수를 조합하여 구현할 수 있습니다
‘ , ‘ 로 구분된 문자열을 N개의 ROW로 분리
WITH T AS (
SELECT 'ㄱ,ㄴ,ㄷ,ㄹ' AS CSV_STRING FROM DUAL
)
SELECT TRIM(REGEXP_SUBSTR(CSV_STRING, '[^,]+', 1, LEVEL)) AS VALUE
FROM T
CONNECT BY REGEXP_SUBSTR(CSV_STRING, '[^,]+', 1, LEVEL) IS NOT NULL
정규식 패턴(^ : 문자열 또는 줄의 시작)을 사용하여 CSV_STRING을 구분하여 원하는 결과값을 조회 할 수 있습니다
콤마(,) 대신 다른 구분자로 되어 있어도 사용 할 수 있습니다
'너알나알 > 오라클[Oracle]' 카테고리의 다른 글
[오라클]PIVOT 함수 사용 행+열 바꾸기 (0) | 2024.03.21 |
---|---|
[오라클]일정 갯수의 ROW 생성 (0) | 2024.03.20 |
[오라클]오라클 데이터베이스 버전확인 (0) | 2024.03.20 |
[오라클]N개의 ROW의 값을 1개의 ROW로 조회 (1) | 2024.03.18 |
[오라클]데이터 복구, Flashback (0) | 2024.03.18 |
댓글