728x90
반응형
이전포스팅에서 Mysql 쿼리로
구분자로 구분된 문자열을 행으로 분리하는 쿼리를 작성했었는데
https://dzzienki.tistory.com/35
이번에는 오라클 DB 에서 구분자를 행으로 분리하는 쿼리가 필요하여 작성하였다.
위 내용은
해당 블로그에서 참조하였다.
위의 블로그에서는
10g 이상 버전과 8i 버전 두가지를 나누어 사용하였으니 필요하신 분들은 참고하시길 바란다.
만약 이런 테이블이 있다고 가정했을 때
JUL | CONTENT |
1절 | 동해물과;백두산이;마르고;닳도록;하느님이;보우하사;우리나라;만세 |
2절 | 남산위에;저소나무;철갑을;두른듯;바람서리;불변함은;우리;기상일세 |
3절 | 가을하늘;공활한데;높고;구름없이;밝은달은;우리가슴;일편;단심일세 |
4절 | 이기상과;이맘으로;충성을;다하여;괴로우나;즐거우나;나라;사랑하세 |
후렴 | 무궁화;삼천리;화려강산;대한사람;대한으로;길이;보전하세 |
위의 테이블을
JUL | CONTENT |
1절 | 동해물과 |
1절 | 백두산이 |
1절 | 마르고 |
1절 | 닳도록 |
1절 | 하느님이 |
1절 | 보우하사 |
1절 | 우리나라 |
1절 | 만세 |
2절 | 남산위에 |
2절 | 저소나무 |
이렇게 바꾸는 쿼리이다.
1
2
3
4
5
|
SELECT JUL,
REGEXP_SUBSTR(CONTENT, '[^;]+', 1, b.lv) AS CONTENT --여기 ^ 뒤에 구분된 구분자를 입력한다
FROM akukka, (SELECT LEVEL AS lv FROM dual CONNECT BY LEVEL <=8) b --여기 LEVEL 뒤의 숫자를 나누어질 갯수로 지정해줘야 한다.
WHERE REGEXP_SUBSTR(CONTENT, '[^;]+', 1, b.lv) IS NOT NULL --여기 ^ 뒤에 구분된 구분자를 입력한다
|
cs |
728x90
반응형
'개발 > SQL' 카테고리의 다른 글
NoSQL의 정의, RDB와의 차이, 예시 (4) | 2024.10.18 |
---|---|
자신의 자바 버전에 맞는 mariadb jdbc 확인하는 법 (0) | 2023.07.24 |
MariaDB 통계구할 때 Group By 안쓰고 여러개의 조건별 통계 구하기 (0) | 2022.05.20 |
오라클 시퀀스를 사용하지 않고 자동 증가하는 id 값 만들기 (0) | 2021.06.23 |
오라클 시작일 종료일 사이의 연, 월, 주, 일 추출 쿼리 (1) | 2021.06.11 |