반응형
LISTAGG 구문
SELECT LISTAGG (컬럼명, 구분기호) WITHIN GROUP (ORDER BY 정렬기준컬럼)
FROM 테이블명
예제
다음 테이블로 사용방법을 살펴보자
동일한 MSD_ID의 값의 LINK_ORG 값을 하나의 컬럼으로 가져오고 싶다면 LISTAGG 구문을 사용해서 가져오면 된다.
SELECT LISTAGG(LINK_ORG, '') WITHIN GROUP (ORDER BY LINK_ORG) AS LINK_ORG
FROM G_LINK
WHERE MSD_ID = 'MSD_ID'
여기서 구분기호를 두지 않았지만 만약 구분기호를 ',' 로 두었다면 결과값은 00,01,02,03,04 가 나온다.
참고로 LISTAGG는 중복제외(DISTINCT)를 지원하지 않는다.
이를 해결하기 위해 아래와 같이 서브쿼리를 이용하여 중복을 제외한 테이블에서 LISTAGG를 사용한다.
SELECT LISTAGG(LINK_ORG, ',') WITHIN GROUP (ORDER BY LINK_ORG) AS LINK_ORG
FROM (SELECT DISTINCT LINK_ORG FROM G_LINK MSD_ID='값')
참고 사이트
Link : https://aljjabaegi.tistory.com/144
728x90
반응형
'Database > SQL' 카테고리의 다른 글
[Error] MySQL 에러 Cannot delete or update a parent row: a foreign key constraint fails (0) | 2019.12.11 |
---|---|
[Oracle] INNER JOIN이란? 사용방법도 함께 알아보자 (0) | 2019.10.13 |
[Oracle] OUTER JOIN 사용 방법과 차이점 (LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN) (1) | 2019.10.12 |
[MySQL] DATE_FORMAT 날짜 표기법 (0) | 2019.07.20 |
[Oracle] SQL WHERE IN 구문 쇽쇽! (4) | 2019.07.08 |
댓글