728x90
LISTAGG 함수
Oracle 데이터베이스의 SQL 함수로, 여러행의 데이터를 단일 행에 함께 출력하게 해줍니다.
*11g 에서 추가. 10g 이하는 WM_CONCAT 함수 사용
LISTAGG([합칠 컬럼명], [구분자]) WITHIN GROUP(ORDER BY [정렬 컬럼명])
합칠 컬럼명 : 연결할 값의 열
구분자: 연결된 값 사이에 삽입될 문자열
ORDER BY 절: 그룹화된 행의 정렬 순서를 지정합니다. 선택적으로 사용할 수 있습니다.
사용 예시
예를 들어, emp 테이블에서 부서별 사원 이름을 구하려면 다음과 같은 쿼리를 사용할 수 있습니다.
SELECT department_id, LISTAGG (name, ', ') AS employee_names
FROM emp
GROUP BY department_id;
이 쿼리의 결과는 다음과 같습니다.
department_id | employee_names
----------+------------
10 | SMITH, JONES, ALLEN, WARD, MARTIN
20 | SCOTT, KING
30 | FORD, JONES
이 쿼리는 emp 테이블에서 부서별 사원 이름을 구한 후, LISTAGG 함수를 사용하여 동일한 값을 하나의 문자열로 묶어 출력합니다. LISTAGG 함수의 delimiter 값은 공백으로 지정되어 있으므로, 결과는 부서별로 사원 이름이 공백으로 구분되어 출력됩니다.
728x90
'STUDY > DB SQL' 카테고리의 다른 글
[SQL] 오라클 %TYPE %ROWTYPE (0) | 2023.06.26 |
---|---|
[SQL] 오라클 TRIM함수 (0) | 2023.06.26 |
[SQL] 오라클 시퀀스(SEQUENCE) 사용법 (0) | 2023.06.26 |
[DB] Master & Slave 개념 이해 (0) | 2023.06.22 |
[DB] DBMS별 Schema(스키마), Database 개념 차이점 (0) | 2023.06.09 |