SQL/MSSQL

[MSSQL] STRING_AGG 함수 사용 방법 및 예시

Ant_U 2023. 4. 3. 18:53
728x90
반응형

SQL Server 2017부터는 T-SQL의 STRING_AGG 함수를 사용하여 문자열을 결합할 수 있습니다. 이 함수는 하나 이상의 열 값을 결합하여 구분 기호로 구분된 하나의 문자열로 반환합니다.

다음은 STRING_AGG 함수를 사용하여 문자열을 결합하는 방법에 대한 자세한 설명입니다.

기본 구문

STRING_AGG ( expression, separator )
  • expression: 결합할 열의 이름 또는 식입니다.
  • separator: 구분 기호입니다. 결합할 문자열 간에 삽입됩니다.

 

예제
다음은 Sales.SalesOrderDetail 테이블의 ProductID 열을 결합하여 문자열을 만드는 예제입니다.

SELECT STRING_AGG(CONVERT(VARCHAR(10), ProductID), ',') AS ProductList
FROM Sales.SalesOrderDetail;

위 예제는 각 ProductID 값 사이에 쉼표로 구분된 하나의 문자열을 반환합니다.

GROUP BY 절과 함께 사용하기
STRING_AGG 함수는 GROUP BY 절과 함께 사용할 수 있습니다. 예를 들어, 다음은 Sales.SalesOrderDetail 테이블에서 각 SalesOrderID의 ProductID를 결합하는 예제입니다.

SELECT SalesOrderID, STRING_AGG(CONVERT(VARCHAR(10), ProductID), ',') AS ProductList
FROM Sales.SalesOrderDetail
GROUP BY SalesOrderID;

위 예제는 SalesOrderID별로 각각 하나의 ProductID를 구분 기호로 구분된 하나의 문자열로 반환합니다.

주의사항

  • STRING_AGG 함수의 최대 길이는 8,000자입니다. 이를 초과하는 문자열은 잘려서 반환됩니다.
  • 문자열 결합을 위해 STRING_AGG 함수를 사용하면 성능 저하가 발생할 수 있습니다. 따라서 대규모 데이터셋에서는 성능 문제를 예방하기 위해 다른 방법을 고려해야 합니다.
728x90
반응형