SQL Server의 목록 집계
SQL Server는 여러 행의 값을 단일 쉼표로 구분된 문자열로 연결하는 기능을 포함하여 데이터 집계를 위한 강력한 기능 세트를 제공합니다. 이 집계 방법을 익히는 것은 다양한 데이터 집계 및 프레젠테이션 작업에 매우 중요합니다.
SQL Server에서 Oracle의 LISTAGG 함수와 동일한 기능을 얻으려면 STRING_AGG 함수를 사용할 수 있습니다. SQL Server 2017에 도입된 이 함수를 사용하면 그룹 내에서 문자열을 연결할 수 있습니다.
예
다음 데이터세트를 고려하세요.
字段 A | 字段 B |
---|---|
1 | A |
1 | B |
2 | A |
쿼리:
<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>
결과:
字段 A | FieldBs |
---|---|
1 | A, B |
2 | A |
WITHIN GROUP 절이 있는 STRING_AGG 함수는 FieldA로 그룹화된 각 그룹 내에서 값이 연결되도록 합니다. 집계의 ORDER BY 절은 값이 나열되어야 하는 순서를 지정합니다.
2017 이전 SQL Server 버전의 경우 CTE(공통 테이블 표현식)와 STUFF 함수를 조합하여 사용하면 동일한 결과를 얻을 수 있습니다. 그러나 단순성과 최신 버전과의 호환성을 위해 STRING_AGG 함수가 권장되는 솔루션입니다.
위 내용은 Oracle의 LISTAGG처럼 SQL Server에서 문자열을 어떻게 집계할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!