>데이터 베이스 >MySQL 튜토리얼 >T-SQL에서 테이블 형식 데이터의 동적 피벗을 달성하는 방법은 무엇입니까?

T-SQL에서 테이블 형식 데이터의 동적 피벗을 달성하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-14 20:20:45850검색

How to Achieve Dynamic Pivoting of Tabular Data in T-SQL?

T-SQL의 동적 피벗

표 형식의 데이터를 보다 간결한 형식으로 변환하는 것은 데이터 분석 및 보고서 생성에 매우 중요합니다. 일반적으로 사용되는 기술 중 하나는 행을 열로 변환하는 피벗(pivoting)입니다. 이 예에서 우리의 목표는 다음과 유사한 구조를 가진 테이블에서 데이터를 피벗하는 것입니다.

ItemID ColumnName Value
1 name Peter
1 phone 12345678
1 email [email protected]
2 name John
2 phone 87654321
2 email [email protected]
3 name Sarah
3 phone 55667788
3 email [email protected]

보다 사용자 친화적인 구조로 전환:

ItemID name phone email
1 Peter 12345678 [email protected]
2 John 87654321 [email protected]
3 Sarah 55667788 [email protected]

동적 피벗을 사용하여 T-SQL에서 이를 달성하려면 다음 단계를 따르세요.

  1. 동적 열 목록 만들기:

    <code class="language-sql"> DECLARE @cols NVARCHAR(2000)
     SELECT  @cols = STUFF(( SELECT DISTINCT TOP 100 PERCENT
                                      '],[' + t.ColumnName
                              FROM    #Table AS t
                              FOR XML PATH('')
                            ), 1, 2, '') + ']' </code>
  2. 동적 쿼리 작성:

    <code class="language-sql"> DECLARE @query NVARCHAR(4000) 
     SET @query = N'SELECT ID,'+ @cols +' FROM 
     (SELECT t1.ID,t1.ColumnName , t1.Value FROM #Table AS t1) p 
     PIVOT (MAX([Value]) FOR ColumnName IN ( '+ @cols +' )) 
     AS pvt;' </code>
  3. 쿼리 실행:

    <code class="language-sql"> EXECUTE(@query)</code>

생성된 쿼리는 데이터를 동적으로 피벗하여 더욱 간결하고 읽기 쉬운 테이블 구조를 만듭니다.

이 접근 방식은 특히 열 이름이 동적이거나 변경될 수 있는 경우 데이터를 피벗하기 위한 유연한 메커니즘을 제공합니다. 효율적이고 자동화된 데이터 변환이 가능하므로 다양한 데이터 분석 및 보고 애플리케이션을 위한 강력한 도구가 됩니다.

위 내용은 T-SQL에서 테이블 형식 데이터의 동적 피벗을 달성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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