집 >데이터 베이스 >MySQL 튜토리얼 >SQL Server의 STUFF 함수와 FOR XML PATH 절을 함께 사용하여 그룹 내에서 문자열을 연결하려면 어떻게 해야 합니까?
SQL Server: 그룹화된 문자열 연결을 위해 STUFF 및 FOR XML PATH 결합
이 가이드에서는 SQL Server의 STUFF
함수와 FOR XML PATH
절을 함께 사용하여 그룹 내에서 문자열을 효율적으로 연결하는 방법을 설명합니다.
구성요소 이해:
FOR XML PATH('')
: 이 절은 쿼리 결과를 XML 형식으로 변환합니다. 빈 문자열(''
)을 PATH
인수로 사용하면 지정된 열에서 XML 태그로 묶인 쉼표로 구분된 값 목록이 생성됩니다. 예를 들면 다음과 같습니다.
<code class="language-sql">SELECT ',' + name FROM temp1 FOR XML PATH('')</code>
다음과 같이 출력됩니다: ,aaa,bbb,ccc,ddd,eee
STUFF
함수: STUFF
함수는 문자열의 일부를 대체하여 수정합니다. 여기서는 FOR XML PATH('')
에서 생성된 선행 쉼표를 제거하는 데 사용됩니다. 함수의 매개변수는 다음과 같습니다.
따라서 STUFF((SELECT ',' NAME FROM temp1 FOR XML PATH('')), 1, 1, '')
는 초기 쉼표를 제거하여 다음을 생성합니다. aaa,bbb,ccc,ddd,eee
조인 및 그룹화: 최종 쿼리는 ID
열을 사용하여 연결된 문자열을 원래 테이블에 다시 조인하고 결과를 그룹화하여 원하는 출력을 얻습니다.
<code class="language-sql">SELECT ID, abc = STUFF( (SELECT ',' + name FROM temp1 t1 WHERE t1.id = t2.id FOR XML PATH('')), 1, 1, '') FROM temp1 t2 GROUP BY id;</code>
이렇게 하면 다음과 같은 결과 집합이 생성됩니다.
Id | abc |
---|---|
1 | aaa,bbb,ccc,ddd,eee |
이 방법은 SQL Server의 그룹 내에서 문자열을 연결하는 간결하고 효과적인 방법을 제공하므로 더 복잡한 기술이 필요하지 않습니다.
위 내용은 SQL Server의 STUFF 함수와 FOR XML PATH 절을 함께 사용하여 그룹 내에서 문자열을 연결하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!