집 >데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 목록 집계를 수행하는 방법은 무엇입니까?
SQL Server 목록 집계에 대한 자세한 설명
관계형 데이터베이스 작업에서 데이터 집계는 여러 기록 정보를 의미 있는 요약으로 통합하는 핵심 단계입니다. 목록 집계는 여러 값을 하나의 분리된 목록으로 연결하는 집계 방법 중 하나입니다.
SQL Server 자체에서는 Oracle과 유사한 LISTAGG 기능을 직접 제공하지 않습니다. 그러나 여러 기술을 통해 동일한 기능을 구현할 수 있습니다.
방법 1: STRING_AGG(SQL Server 2017 이상)
SQL Server 2017 이상의 경우 STRING_AGG 함수는 목록 집계를 위한 깔끔한 솔루션을 제공합니다.
<code class="language-sql">SELECT FieldA , STRING_AGG(FieldB, ',') WITHIN GROUP (ORDER BY FieldB) AS FieldBs FROM TableName GROUP BY FieldA ORDER BY FieldA;</code>
방법 2: 재귀적 CTE(SQL Server 2016 이하)
이전 버전의 SQL Server에서는 재귀적 공통 테이블 표현식(CTE)을 사용하여 목록 집계를 구현할 수 있었습니다.
<code class="language-sql"> WITH CTE_TableName AS ( SELECT FieldA, FieldB FROM TableName) SELECT t0.FieldA , STUFF(( SELECT ',' + t1.FieldB FROM CTE_TableName t1 WHERE t1.FieldA = t0.FieldA ORDER BY t1.FieldB FOR XML PATH('')), 1, LEN(','), '') AS FieldBs FROM CTE_TableName t0 GROUP BY t0.FieldA ORDER BY FieldA;</code>
다른 데이터베이스와의 호환성
SQL Server 이외의 데이터베이스 시스템의 경우 다음 대안을 사용할 수 있습니다.
요약
SQL Server에는 기본 LISTAGG 기능이 없지만 유사한 기능을 구현하는 방법은 여러 가지가 있습니다. 사용 중인 SQL Server 버전에 따라 이러한 방법은 문자열 데이터를 구분된 목록으로 집계하기 위한 유연한 옵션을 제공합니다.
위 내용은 SQL Server에서 목록 집계를 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!