집 >데이터 베이스 >MySQL 튜토리얼 >FOR XML PATH 및 STUFF 함수는 SQL Server에서 문자열 연결을 위해 어떻게 함께 작동합니까?
SQL Server 문자열 연결: FOR XML PATH 및 STUFF 마스터링
SQL Server는 특히 FOR XML PATH
및 STUFF
함수를 통해 강력한 문자열 조작 기능을 제공합니다. 이러한 함수는 여러 행의 데이터를 단일 문자열로 연결하는 데 매우 유용합니다.
해체 FOR XML PATH
FOR XML PATH
함수는 쿼리 결과를 XML 형식으로 변환합니다. 경로를 지정하면 XML 구조를 제어할 수 있습니다. 예를 들어, 쉼표로 구분된 이름 목록을 만들려면:
<code class="language-sql">SELECT ',' + name FROM temp1 FOR XML PATH('')</code>
이렇게 하면 앞에 쉼표가 있는 XML 문자열이 생성됩니다.
STUFF
기능 활용하기
STUFF
함수는 문자를 대체하여 문자열을 수정합니다. 원래 문자열, 시작 위치, 제거할 문자 수, 대체 문자열 등 4개의 인수를 사용합니다.
위 XML 출력에서 초기 쉼표를 제거하려면:
<code class="language-sql">STUFF((SELECT ',' + name FROM temp1 FOR XML PATH('')), 1, 1, '')</code>
이렇게 하면 쉼표로 구분된 이름 목록이 남고 문자열이 효율적으로 정리됩니다.
FOR XML PATH
과 STUFF
이러한 기능을 결합하면 강력한 레코드 집합 연결이 가능해집니다. 다음 SQL 쿼리를 고려해보세요.
<code class="language-sql">SELECT ID, abc = STUFF( (SELECT ',' + name FROM temp1 WHERE t1.id = t2.id FOR XML PATH ('')) , 1, 1, '') FROM temp1 t2 GROUP BY id</code>
이 쿼리는 다음 단계를 수행합니다.
FOR XML PATH
하위 쿼리: 이 중첩 쿼리는 각 ID와 연관된 이름을 검색하여 temp1
(t1
별칭)를 외부 쿼리 테이블(t2
별칭)과 조인합니다. FOR XML PATH('')
이러한 이름을 단일 XML 요소로 연결합니다.STUFF
함수: 외부 쿼리는 STUFF
을 사용하여 하위 쿼리에 의해 생성된 XML 문자열에서 선행 쉼표를 제거합니다.GROUP BY
절: GROUP BY id
은 최종 결과에 각각 해당 연결 이름이 있는 고유 ID만 포함되도록 합니다.결론
FOR XML PATH
과 STUFF
의 결합된 기능은 SQL Server의 문자열 연결에 대한 간소화된 접근 방식을 제공합니다. 이 기술을 사용하면 서식이 지정된 문자열 생성, 여러 행의 텍스트 병합, 사용자 정의 집계 구축이 단순화됩니다.
위 내용은 FOR XML PATH 및 STUFF 함수는 SQL Server에서 문자열 연결을 위해 어떻게 함께 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!