>데이터 베이스 >MySQL 튜토리얼 >2017 이전 버전에서 SQL Server의 'string_agg' 기능을 어떻게 복제할 수 있나요?

2017 이전 버전에서 SQL Server의 'string_agg' 기능을 어떻게 복제할 수 있나요?

Patricia Arquette
Patricia Arquette원래의
2025-01-20 19:50:09510검색

How Can I Replicate SQL Server's `string_agg` Function in Versions Before 2017?

2017 이전 SQL Server에서 string_agg 에뮬레이션

2017년에 도입된 SQL Server의 string_agg 기능은 문자열 연결을 단순화합니다. 그러나 이전 버전의 경우 대체 접근 방식이 필요합니다. 이 기사에서는 유사한 결과를 얻는 방법을 보여줍니다.

목표는 이 쿼리의 기능을 복제하는 것입니다.

<code class="language-sql">SELECT STRING_AGG(t.id, ',') AS id
FROM Table t;</code>

쉼표를 구분 기호로 사용하여 '테이블' 테이블의 'id' 열 값을 연결합니다.

2017년 이전 SQL Server에는 string_agg이 부족합니다. 솔루션은 FOR XML PATH 메소드를 활용합니다:

<code class="language-sql">SELECT STUFF((SELECT ',' + CAST(t.id AS VARCHAR(MAX))
              FROM Table t
              FOR XML PATH('')), 1, 1, '');</code>

이것은 쉼표로 구분된 문자열을 교묘하게 구성합니다. FOR XML PATH('')은 XML 표현을 생성하여 쉼표로 구분된 목록을 효과적으로 생성합니다. STUFF() 그런 다음 선행 쉼표를 제거합니다. 이는 string_agg 동작

을 효과적으로 모방합니다.

이 해결 방법은 최신 string_agg 함수의 기능을 미러링하여 이전 SQL Server 버전의 문자열 연결에 대한 실용적인 솔루션을 제공합니다.

위 내용은 2017 이전 버전에서 SQL Server의 'string_agg' 기능을 어떻게 복제할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.