> 데이터 베이스 > MySQL 튜토리얼 > 동적 열을 사용하여 SQL Server에서 데이터를 동적으로 피벗하는 방법은 무엇입니까?

동적 열을 사용하여 SQL Server에서 데이터를 동적으로 피벗하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-31 11:47:10
원래의
178명이 탐색했습니다.

How to Dynamically Pivot Data in SQL Server with Dynamic Columns?

동적 열에 대한 동적 SQL Server PIVOT

여러 열('Name1' 및 'Name2')과 값이 포함된 데이터 세트가 있습니다. 열('값'). 이 데이터를 'Name1'이 열 머리글이 되고 값이 'Name2'로 집계되는 피벗 형식으로 변환하려고 합니다.

동적 SQL을 사용한 솔루션(SQL Server 2005 이상)

SQL Server 2005에서는 동적 SQL을 허용하므로 PIVOT 쿼리를 동적으로 조합하여 이 문제를 해결할 수 있습니다. 코드는 다음과 같습니다.

DECLARE @cols VARCHAR(1000)
DECLARE @sqlquery VARCHAR(2000)

SELECT  @cols = STUFF(( SELECT distinct  ',' + QuoteName([Name1])
                        FROM myTable FOR XML PATH('') ), 1, 1, '') 


SET @sqlquery = 'SELECT * FROM
      (SELECT Name2, Name1, Value
       FROM myTable ) base
       PIVOT (Sum(Value) FOR [Name1]
       IN (' + @cols + ')) AS finalpivot'

EXECUTE ( @sqlquery )
로그인 후 복사

이 쿼리는 고유한 'Name1' 값의 개수에 관계없이 동적으로 작동합니다. 수집된 'Name1' 값을 @cols 변수에 할당한 다음 @sqlquery 변수에서 PIVOT 절을 동적으로 구성하는 데 사용됩니다. 그런 다음 최종 쿼리가 실행되어 원하는 출력이 생성됩니다.

추가 리소스:

  • [T-SQL의 피벗 데이터](https://www .mssqltips.com/sqlservertip/1355/pivot-data-in-tsql/)
  • [방법 SQL Server를 사용하여 단일 테이블에 조인하여 요약을 작성합니까?](https://stackoverflow.com/questions/260660/how-do-i-build-a-summary-by-joining-to-a-single -table-with-sql-server)
  • [동적 PIVOT 열](https://stackoverflow.com/questions/8248059/pivot-with-dynamic-columns-in-sql-server-2005)

위 내용은 동적 열을 사용하여 SQL Server에서 데이터를 동적으로 피벗하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿