LISTAGG()
- LISTAGG() 함수를 사용하면 하나의 컬럼 안에 데이터를 가로로 하여 출력할 수 있습니다.
LISTAGG() 문법
SELECT LISTAGG(컬럼, '구분자') WITHIN GROUP (ORDER BY 컬럼)
FROM 테이블
GROUP BY 컬럼;
- LISTAGG() 괄호 안에 출력하고자하는 컬럼과 컬럼을 구분해줄 구분자를 써줍니다. 구분자는 쓰지 않아도 출력이 가능하지만 가독성이 매우 떨어집니다. 구분자는 콤마(,)나 슬래쉬(/) 등등 구분하고자 하는 문자를 써주면 됩니다.
- WITHIN GROUP은 '~이내의' 라는 뜻을 가지고 있습니다. 두 번째 괄호 안에는 ORDER BY와 함께 정렬하고자 하는 컬럼을 적어줍니다.
- GROUP BY는 LISTAGG()를 사용하기 위해서 필수로 사용해야 합니다.
LISTAGG() 테스트(https://livesql.oracle.com/)
1) LISTAGG()

- LISTAGG()를 사용하여 특정 날짜의 입양한 동물들을 동물 타입별로 나누어 출력하였습니다.
- 구분자는 콤마(,)를 사용하였습니다.
- ORDER BY절로 동물의 이름 순서대로 정렬하여 LISTAGG 안에 데이터가 알파벳 A부터 차례대로 출력되게 하였습니다.
2) LISTAGG()에 컬럼을 여러 개 출력할 경우

- LISTAGG() 컬럼을 적는 옵션에 연결 연산자( || )를 사용하여 동물의 이름 뒤에 아이디가 따라붙게 하였습니다. 이처럼 가로로 출력하는 데이터에 두 개의 컬럼을 사용할 수도 있습니다.
+) 오라클 문자열 붙이기(https://javabuilders.tistory.com/43)
'DATABASE > ORACLE 기본' 카테고리의 다른 글
[Oracle] 오라클 세로 데이터를 가로로 출력하는 방법 PIVOT() (0) | 2022.07.04 |
---|---|
[Oracle] 오라클 전의 행과 다음 행 출력 함수 LAG()와 LEAD() (0) | 2022.06.28 |
[Oracle] 오라클 비율 출력 함수 CUME_DIST() (0) | 2022.06.23 |
[Oracle] 오라클 등급 출력 함수 NTILE() (0) | 2022.06.22 |
[Oracle] 오라클 순위 출력 함수 RANK() (0) | 2022.06.21 |