본문 바로가기
  • [성공하는 개발자] - Developer
DataBase/MSSQL

[MSSQL] STRING_AGG 함수 사용법

by Sein-JH 2022. 4. 11.
728x90

 

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

 

참고 : https://gent.tistory.com/345?category=874679

댓글