집 >데이터 베이스 >MySQL 튜토리얼 >SQL 쿼리 결과를 단일 문자열로 효율적으로 연결하는 방법은 무엇입니까?
SQL 쿼리 결과를 단일 문자열로 누적
쿼리 결과를 단일 문자열로 연결하는 것은 데이터베이스 프로그래밍에서 일반적인 작업입니다. SQL Server에서는 이를 달성하기 위해 FOR XML PATH & STUFF 기술을 사용하거나 STRING_AGG 함수를 활용하는 두 가지 접근 방식이 있습니다.
FOR XML PATH & STUFF
의 경우 SQL Server 버전 2005 이상에서는 FOR XML PATH 및 STUFF 조합이 효과적입니다. 접근 방식:
DECLARE @CodeNameString varchar(100) SELECT @CodeNameString = STUFF( (SELECT ',' + CodeName FROM dbo.AccountCodes ORDER BY Sort FOR XML PATH('')), 1, 1, '')
이 솔루션은 FOR XML PATH('')를 사용하여 결과를 XML 문자열로 연결한 다음 STUFF를 사용하여 XML 연결에서 상속된 초기 쉼표를 제거합니다.
STRING_AGG 함수
SQL Server 2017 이상에서는 STRING_AGG 함수는 이 작업을 위한 전용 솔루션을 제공합니다.
DECLARE @CodeNameString varchar(100) SELECT @CodeNameString = STRING_AGG(CodeName, ',') FROM dbo.AccountCodes ORDER BY Sort
STRING_AGG 함수는 결과를 지정된 구분 기호(이 경우 ',')로 구분된 단일 문자열로 직접 연결합니다.
특수문자 처리
FOR XML PATH & STUFF 접근 방식은 '<', '>' 및 '&'와 같은 특정 특수 문자를 XML 엔터티(<, > 및 &)로 인코딩할 수 있습니다. 이러한 문자에 문제가 있는 상황에서는 USING XMLTYPE 절과 함께 STRING_AGG 함수를 사용할 수 있습니다.
DECLARE @CodeNameString varchar(100) SELECT @CodeNameString = STRING_AGG(CodeName, ',') USING XMLTYPE FROM dbo.AccountCodes ORDER BY Sort
위 내용은 SQL 쿼리 결과를 단일 문자열로 효율적으로 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!