728x90
반응형
https://imswengineer.tistory.com/1301
[DB][Oracle] LISTAGG
LISTAGG는 Oracle DB를 포함한 SQL 데이터베이스에서 여러 행의 값을 하나의 문자열로 집계(Aggregation) 할 때사용하는 함수입니다.주로 그룹화된 데이터를 문자열로 연결할 때 유용합니다.📌 기본 문
imswengineer.tistory.com
- 중복 제거: 기본적으로 중복 제거는 안 됨 → DISTINCT 서브쿼리로 처리해야 함
으로 작성하였는데
✅ 오라클 21c 이상일 경우 LISTAGG(DISTINCT ...)도 가능
오라클 21c 이상에서는 다음과 같은 문법이 공식 지원됩니다:
LISTAGG(DISTINCT CI.EXHL_CD, ', ') WITHIN GROUP (ORDER BY CI.EXHL_CD)
하지만 오라클 12c, 19c 등에서는 위 문법은 에러가 발생하므로, DISTINCT 서브쿼리 방식이 가장 호환성이 높습니다.
728x90
반응형
'DB' 카테고리의 다른 글
[DB][Oracle] DBMS_LOB.SUBSTR (0) | 2025.08.05 |
---|---|
[DB][MySQL] 공백과 Null 모두 제외하기 (0) | 2025.07.16 |
[DB][Oracle] 공백과 Null 모두 제외하기 (0) | 2025.06.17 |
[DB][MySQL] ROW_NUMBER()와 WITH (CTE)를 사용할 때 성능 차이 (0) | 2025.05.26 |
[DB][Oracle] 동적으로 정렬이 바뀔 때 행 번호 매기기 (ROWNUM, ROW_NUMBER()) (0) | 2025.05.19 |