SQL Server는 여러 줄의 텍스트를 단일 줄 문자열로 병합
다양한 데이터베이스 시나리오에서는 여러 행의 문자열 값을 일관된 단일 문자열로 결합해야 할 수도 있습니다. 이는 다양한 데이터 포인트의 정보를 종합적인 요약 또는 표시로 결합해야 할 때 특히 유용합니다.
문제 설명
다음 세 행이 포함된 "Names"라는 테이블을 생각해 보세요.
도전
목표는 이러한 개별 줄을 쉼표로 구분된 단일 문자열인 "Peter, Paul, Mary"로 변환하는 것입니다.
솔루션
SQL Server 2017 및 Azure SQL Database에서는 STRING_AGG() 함수를 사용하여 이 작업을 수행할 수 있습니다. STRING_AGG()의 구문은 다음과 같습니다.
<code class="language-sql">STRING_AGG(<expression> [ , delimiter ] [ ORDER BY <expression> [ ASC | DESC ] ])</code>
우리 시나리오에서는 표현식이 이름 열이고 구분 기호는 쉼표입니다. ORDER BY 절은 이름이 특정 순서(즉, 알파벳 순서)로 표시되도록 합니다.
SQL 쿼리
<code class="language-sql">SELECT STRING_AGG(Name, ', ') AS ConcatenatedNames FROM Names ORDER BY Name;</code>
출력
<code>ConcatenatedNames --------------------- Peter, Paul, Mary</code>
이전 SQL Server 버전을 위한 대체 솔루션
SQL Server 2005 등 이전 버전의 SQL Server를 사용하는 경우 다음 방법을 사용할 수 있습니다.
<code class="language-sql">SELECT ( SELECT StudentName + ',' AS [text()] FROM dbo.Students WHERE SubjectID = Main.SubjectID ORDER BY StudentID FOR XML PATH('') ).value('text()[1]', 'nvarchar(max)') AS Students FROM ( SELECT DISTINCT SubjectID FROM dbo.Students ) AS Main;</code>
위 내용은 여러 행에서 SQL Server의 단일 문자열로 텍스트를 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!