동적 열에 대한 동적 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 절을 동적으로 구성하는 데 사용됩니다. 그런 다음 최종 쿼리가 실행되어 원하는 출력이 생성됩니다.
추가 리소스:
위 내용은 동적 열을 사용하여 SQL Server에서 데이터를 동적으로 피벗하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!