집 >데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 여러 열이 있는 테이블을 전치하는 방법은 무엇입니까?
SQL Server 다중 열 피벗 방식
표를 전치된 형태로 변환하는 것은 다양한 상황에서 유용합니다. 이 문서에서는 Microsoft SQL Server에서 여러 열(A, B 등)이 있는 테이블을 전치하는 방법에 중점을 둡니다.
UNPIVOT 및 PIVOT을 사용하여 데이터 피벗
테이블을 전치하려면 UNPIVOT 및 PIVOT 함수를 함께 사용할 수 있습니다.
예는 다음과 같습니다.
<code class="language-sql">select * from ( select day, col, value from yourtable unpivot ( value for col in (A, B) ) unpiv ) src pivot ( max(value) for day in (Mon, Tue, Wed, Thu, Fri) ) piv;</code>
SQL Server 2008 이상에 대한 CROSS APPLY 및 VALUES 방법
SQL Server 2008 이상의 경우 VALUES와 결합된 CROSS APPLY를 사용하여 데이터 압축을 풀 수도 있습니다.
<code class="language-sql">select * from ( select day, col, value from yourtable cross apply ( values ('A', ACalls),('B', BCalls) ) c (col, value) ) src pivot ( max(value) for day in (Mon, Tue, Wed, Thu, Fri) ) piv;</code>
문의에 적용
현재 쿼리의 결과를 바꾸려면 비슷한 방법을 사용할 수 있습니다.
<code class="language-sql">select * from ( select LEFT(datename(dw,datetime),3) as DateWeek, col, value from DataTable cross apply ( values ('A', ACalls), ('B', BCalls) ) c (col, value) ) src pivot ( sum(value) for dateweek in (Mon, Tue, Wed, Thu, Fri) ) piv;</code>
이렇게 하면 ACalls 및 BCalls 열이 행으로 바뀌고 각 요일(월, 화 등)에 대한 열 헤더가 생성됩니다.
위 내용은 SQL Server에서 여러 열이 있는 테이블을 전치하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!