티스토리 뷰
728x90
안녕하세요. 개발개입니다.
이번 글에서는 여러 행의 내용을 합치는 데 사용되는
LISTAGG 함수에 대해 알아 보도록 하겠습니다.
오타, 오류 혹은 기타 의견은 언제든지 환영합니다.

LISTAGG 함수 특징
- ORACLE 11g에서 추가된 기능
- ORACLE 10g 이하에서는 WM_CONCAT 사용
- 길이 제한이 있음 (대안: XMLAGG)
- 정렬 가능
- 구분자 변경 가능
LISTAGG 작성 방법
SELECT LISTAGG(대상컬럼, 구분자) WITHIN GROUP (ORDER BY 정렬기준컬럼)
FROM 테이블명
LISTAGG 사용 예시
사용 대상 테이블 조회
SELECT *
FROM FILMS;

개봉일 기준으로 영화 리스트 조회
FILM_NAME 컬럼을 RELEASE_DATE 컬럼 기준으로 그루핑하고
내부 내용은 쉼표 구분자를 이용하여 오름차순 정렬하는 쿼리
SELECT LISTAGG(FILM_NAME, ', ') WITHIN GROUP (ORDER BY FILM_NAME) AS FILM_NAME,
RELEASE_DATE
FROM FILMS
GROUP BY RELEASE_DATE;

본 글은 다음을 참고하여 작성되었습니다.
https://aljjabaegi.tistory.com/144
ORACLE LISTAGG 여러 행을 하나의 컬럼으로 가져오기
ORACLE LISTAGG 여러 행을 하나의 컬럼으로 가져오기 11g 에서 추가. 10g 이하는 WM_CONCAT 함수 사용 (WM_CONCAT은 페이지 하단 Link 참고) 오라클에서 여러개의 열로 된 값을 한 행의 값으로 가져와야 할 때 LIS..
aljjabaegi.tistory.com
728x90