>데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 SQL 쿼리 결과를 단일 문자열로 연결하는 방법은 무엇입니까?

SQL Server에서 SQL 쿼리 결과를 단일 문자열로 연결하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-27 22:09:10463검색

How to Concatenate SQL Query Results into a Single String in SQL Server?

SQL 쿼리 결과를 단일 문자열로 연결

SQL Server에서는 여러 쿼리 결과를 단일 문자열로 결합하는 작업을 수행할 수 있습니다. 다양한 기술을 사용합니다.

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, '')

이 방법은 쿼리 결과를 단일 XML 문자열로 연결하고 그런 다음 STUFF를 사용하여 선행 "," 문자를 제거합니다.

XML 기반 연결

또 다른 옵션은 XML 연결 기능을 활용하는 것입니다.

DECLARE @CodeNameString varchar(100)

SET @CodeNameString = (SELECT CodeName FROM dbo.AccountCodes FOR XML PATH(''))

커서 기반 접근 방식

XML 연결이 실행 가능하지 않으므로 커서 기반 접근 방식이 가능합니다. 채용됨:

DECLARE @CodeNameString varchar(100)
DECLARE @CodeName varchar(50)

DECLARE cursor CURSOR FOR
SELECT CodeName
FROM dbo.AccountCodes
ORDER BY Sort

OPEN CURSOR
FETCH NEXT FROM CURSOR INTO @CodeName
WHILE @@FETCH_STATUS = 0
BEGIN
   SET @CodeNameString = @CodeNameString + @CodeName + ','
   FETCH NEXT FROM CURSOR INTO @CodeName
END

CLOSE CURSOR
DEALLOCATE CURSOR

이 방법은 쿼리 결과를 반복하여 @CodeNameString 변수에 추가합니다.

선호되는 접근 방식

선호되는 접근 방식 접근 방식은 SQL Server 버전 및 특정 데이터 특성에 따라 다릅니다. 데이터에 '<', '>'와 같은 특수 문자가 포함된 경우 또는 '&'인 경우 FOR XML PATH 및 STUFF 기술을 사용하는 것이 좋습니다. 대규모 데이터 세트나 성능에 민감한 시나리오의 경우 커서 기반 접근 방식이 더 적합할 수 있습니다.

위 내용은 SQL Server에서 SQL 쿼리 결과를 단일 문자열로 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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