>데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 그룹을 사용하여 문자열을 연결하는 방법은 무엇입니까?

SQL Server에서 그룹을 사용하여 문자열을 연결하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-25 02:15:12484검색

How to Concatenate Strings Using GROUP BY in SQL Server?

SQL Server에서 GROUP BY 문을 사용하여 문자열 연결

많은 데이터 분석 시나리오에서는 공통 식별자로 그룹화된 여러 행의 문자열을 연결해야 합니다. 이를 통해 보고 목적으로 데이터를 효율적으로 집계하고 조작할 수 있습니다.

SQL Server에서 이를 달성하려면 강력한 GROUP BY 절과 FOR XML 및 PATH 함수를 현명하게 사용하면 됩니다. 이 접근 방식은 커서, 루프 또는 사용자 정의 함수를 사용하지 않고도 효율적이고 간단한 솔루션을 제공합니다.

다음 예제 데이터를 고려하세요.

<code>id       Name       Value
1          A          4
1          B          8
2          C          9</code>

귀하의 목표는 이 데이터를 다음 출력으로 변환하는 것입니다.

<code>id          Column
1          A:4, B:8
2          C:9</code>

이 작업을 수행하려면 다음 SQL 쿼리를 사용할 수 있습니다.

<code class="language-sql">CREATE TABLE #YourTable ([ID] INT, [Name] CHAR(1), [Value] INT)

INSERT INTO #YourTable ([ID],[Name],[Value]) VALUES (1,'A',4)
INSERT INTO #YourTable ([ID],[Name],[Value]) VALUES (1,'B',8)
INSERT INTO #YourTable ([ID],[Name],[Value]) VALUES (2,'C',9)

SELECT 
  [ID],
  STRING_AGG([Name] + ':' + CAST([Value] AS VARCHAR(MAX)), ', ') AS NameValues
FROM #YourTable 
GROUP BY ID

DROP TABLE #YourTable</code>

쿼리를 분석해 보겠습니다.

  • STRING_AGG 함수는 각 그룹 내의 문자열을 쉼표로 구분된 목록으로 연결합니다. 이는 이전 접근 방식보다 더 깔끔하고 읽기 쉬운 솔루션을 제공합니다.

이 SQL 쿼리는 ID 열을 기준으로 데이터를 효과적으로 그룹화하고 각 그룹 내 각 행의 이름 및 값 열을 조인하여 원하는 출력을 얻습니다. STRING_AGG을 사용하면 코드가 단순화되어 이해하고 유지 관리하기가 더 쉬워집니다. 이 방법은 SQL Server 2017 이상에 적극 권장됩니다.

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

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