SQL Server: 집계 중 값을 쉼표로 연결
SQL Server에서는 특정 열을 기준으로 데이터를 그룹화한 다음 관련 값을 쉼표로 구분된 단일 문자열로 결합해야 하는 경우가 많습니다. 이를 예를 들어 설명하겠습니다. YourTable
및 ID
:Value
열이 있는
<code>ID | Value -------|-------- 1 | a 1 | b 2 | c</code>
목표는 각 고유 ID
에 연결된 Value
항목의 쉼표로 구분된 문자열이 있는 결과 집합을 생성하는 것입니다. FOR XML PATH
메소드를 사용하여 이를 달성할 수 있습니다:
<code class="language-sql">SELECT ID, STUFF((SELECT ', ' + Value FROM YourTable t2 WHERE t1.ID = t2.ID FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 2, '') AS Values FROM YourTable t1 GROUP BY ID;</code>
이 쿼리는 다음과 같이 작동합니다.
SELECT
: ID
열을 선택하고 집계를 준비합니다.SELECT
: 외부 쿼리에서 현재 Value
와 일치하는 모든 ID
항목을 검색합니다. ', ' Value
는 각 값 앞에 쉼표와 공백을 추가합니다.FOR XML PATH('')
: 이는 내부 쿼리의 결과를 XML 문자열로 변환하여 값을 효과적으로 연결합니다. 빈 문자열 ''
은 XML 태그가 생성되는 것을 방지합니다..value('.', 'NVARCHAR(MAX)')
: XML에서 연결된 문자열을 추출합니다.STUFF(..., 1, 2, '')
: 연결된 문자열에서 선행 ','를 제거합니다.최종 출력은 다음과 같습니다.
<code>ID | Values -------|-------- 1 | a, b 2 | c</code>
이 기술은 SQL Server에서 쉼표로 구분된 집계를 수행하는 간결하고 효율적인 방법을 제공합니다.
위 내용은 FOR XML PATH를 사용하여 SQL Server에서 값을 집계하고 쉼표로 구분하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!