728x90
STRING_AGG는 MSSQL에서 여러 행의 문자열 값을 하나의 문자열로 결합하는 데 사용하는 함수입니다. 이 함수는 SQL Server 2017부터 지원되며, 구분자를 지정하여 문자열을 원하는 형식으로 연결할 수 있습니다.
기본 구문
STRING_AGG(expression, separator)
- expression: 결합할 문자열 값입니다.
- separator: 문자열을 연결할 때 사용할 구분자입니다. 빈 문자열('')을 지정하면 구분자 없이 연결됩니다.
예제
1. 간단한 사용 예
Employees 테이블에서 각 부서별로 직원 이름을 쉼표로 구분된 문자열로 결합한다고 가정합니다.
SELECT
Department,
STRING_AGG(Name, ', ') AS EmployeeNames
FROM Employees
GROUP BY Department;
결과 예시:
Department | EmployeeNames |
IT | Alice, Bob, Charlie |
HR | Diana, Edward |
2. 정렬 옵션 추가
STRING_AGG는 기본적으로 정렬되지 않습니다. 특정 순서대로 결합하려면 WITHIN GROUP (ORDER BY ...)을 사용해야 합니다.
SELECT
Department,
STRING_AGG(Name, ', ') WITHIN GROUP (ORDER BY Name) AS EmployeeNames
FROM Employees
GROUP BY Department;
결과 예시:
Department | EmployeeNames |
IT | Alice, Bob, Charlie |
HR | Diana, Edward |
3. 중첩된 쿼리에서 사용
중첩된 쿼리를 사용하여 특정 조건에 맞는 데이터를 결합할 수도 있습니다.
SELECT
STRING_AGG(Name, ', ') AS AllEmployees
FROM Employees
WHERE Department = 'IT';
결과 예시:
AllEmployees |
Alice, Bob, Charlie |
주의사항
- STRING_AGG는 NULL 값을 무시합니다. 결합하려는 값 중 NULL이 포함되어 있으면 결과에 포함되지 않습니다.
- MSSQL 2017 이상에서만 사용 가능합니다. SQL Server 버전이 2017보다 낮다면 FOR XML PATH 또는 STUFF와 같은 대체 방법을 사용해야 합니다.
728x90
'Programing > MSSQL' 카테고리의 다른 글
MS-SQL에서 특정테이블의 데이터값으로 INSERT 구문 생성하기 (1) | 2024.11.27 |
---|---|
MS-SQL에서 PIVOT을 이용하여 조회할 때 가변칼럼 형태로 조회결과 가져오기, 동적피벗 사용하기 (0) | 2024.11.22 |
MS-SQL에 연결된 서버로 AS400 연결하기 (6) | 2024.11.15 |
ms-sql 에이전트 XPs 사용 안 함 - 에이전트 사용하기 (0) | 2023.02.28 |
SQL Server 엑셀 가져오기 및 내보내기 오류 (0) | 2022.10.18 |
댓글