"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > PIVOT 연산자를 사용하여 SQL Server에서 데이터를 전치하는 방법은 무엇입니까?

PIVOT 연산자를 사용하여 SQL Server에서 데이터를 전치하는 방법은 무엇입니까?

2024년 12월 23일에 게시됨
검색:429

How to Transpose Data in SQL Server Using the PIVOT Operator?

PIVOT을 사용하여 SQL Server 데이터를 변환하는 방법

SQL Server의 PIVOT 연산자를 사용하면 행을 열로 변환하여 데이터를 열로 변환할 수 있습니다. 수직 방향 형태에서 수평 방향 형태로. 이는 여러 속성을 기반으로 데이터를 요약하려고 할 때 유용할 수 있습니다.

예제 데이터 및 원하는 출력

다음 시작 데이터세트를 고려하세요.

SELECT Name1, Name2, Value FROM mytable

Name1 | Name2 | Value
------- ------- ------
A      | P1     | 1
A      | P2     | 1
A      | P3     | 2
B      | P1     | 3
B      | P2     | 1
B      | P4     | 1

원하는 출력은 PIVOT 연산자가 Name1 열 값을 열 머리글로 변환하고 Value 열의 값이 Name2 열로 요약되도록 데이터를 피벗하는 것입니다.

SQL Server 2005에서 PIVOT을 사용하여 데이터 전치

SQL Server 2005의 경우 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 열의 고유 값을 기반으로 PIVOT 쿼리를 동적으로 생성하여 열 머리글을 조합하고 이에 따라 데이터를 요약합니다. 궁극적으로 결과는 원하는 형식의 데이터가 바뀐 것입니다:

P1      P2      P3      P4
------- ------- ------- -------
1       1       2       NULL
3       1       NULL    1
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3