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
반응형
'SQL > MSSQL' 카테고리의 다른 글
[MSSQL] 행 합치는 법(STRING_AGG, FOR XML PATH, STUFF) (0) | 2023.07.13 |
---|---|
[MSSQL] FOR XML 사용 방법 (0) | 2023.07.13 |
[MSSQL] @@ROWCOUNT 사용 방법 및 예시 (0) | 2023.07.06 |
[MSSQL] STRING_SPLIT 문자열 분리 사용 방법 (1) | 2023.05.24 |
[MSSQL] Coalesce 함수 Null이 아닌 값 반환 사용 방법 (0) | 2023.03.20 |
[MSSQL] INNER, LEFT, RIGHT, FULL JOIN 쿼리 사용 방법 (0) | 2023.03.18 |
[MSSQL] IS NULL 사용 방법 (0) | 2023.03.17 |
[MSSQL] Insert Into / 데이터 삽입 쿼리 (0) | 2023.03.16 |