티스토리 뷰

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;

조회 결과 (using LISTAGG)

 

 

 


 

 

 

본 글은 다음을 참고하여 작성되었습니다.

 

https://aljjabaegi.tistory.com/144

 

ORACLE LISTAGG 여러 행을 하나의 컬럼으로 가져오기

ORACLE LISTAGG 여러 행을 하나의 컬럼으로 가져오기 11g 에서 추가. 10g 이하는 WM_CONCAT 함수 사용 (WM_CONCAT은 페이지 하단 Link 참고) 오라클에서 여러개의 열로 된 값을 한 행의 값으로 가져와야 할 때 LIS..

aljjabaegi.tistory.com

 

728x90
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
05-03 11:56