[MSSQL] STRING_AGG 함수 사용법 (컬럼 문자열 합치기, LISTAGG)

SQL Server 2017 이상의 버전에서는 여러 행의 컬럼 값을 하나의 컬럼으로 합칠 때에는 STRING_AGG() 함수를 사용하면 된다. 오라클 SQL의 LISTAGG() 함수와 비슷한 기능을 수행한다.

 

MSSQL STRING_AGG 함수

 

SQL Server 2017 이전 버전을 사용한다면 FOR XML PATH 서브 쿼리를 사용해야 한다.

[MSSQL] 여러 행의 컬럼을 합치는 방법 (STUFF, FOR XML PATH)

 

STRING_AGG 함수는 GROUP BY 절과 함께 사용해야 한다. ORDER BY 절을 사용하여 정렬이 가능하며 ORDER BY 절은 생략할 수 있다.

 

STRING_AGG("합칠컬럼명", "구분자") WITHIN GROUP(ORDER BY "컬럼명")

 

기본 사용법

SELECT job
     , STRING_AGG(ename, ',') enames
  FROM emp
 WHERE job IN ('MANAGER', 'SALESMAN')
 GROUP BY job

 

컬럼 값을 정렬하여 합치는 방법

SELECT job
     , STRING_AGG(ename, ',') WITHIN GROUP(ORDER BY ename) enames
  FROM emp
 WHERE job IN ('MANAGER', 'SALESMAN')
 GROUP BY job

 

사용 예제

 

 

사용_예제_쿼리.txt
0.00MB

 

 

댓글

Designed by JB FACTORY