TSQL에서 여러 열을 피벗하는 방법
TSQL에서 테이블을 피벗하려면 행을 열로 다시 정렬해야 합니다. 그러나 여러 열을 처리할 때는 모든 레이블을 유지하는 것이 중요합니다.
데이터 피벗 해제
시작하려면 데이터 열이 여러 개 있으므로 피벗 해제하는 것이 좋습니다. 하나의 열로. 이는 SQL Server 버전에 따라 UNPIVOT 함수 또는 CROSS APPLY 메서드를 사용하여 수행할 수 있습니다. 피벗 해제 구문은 다음과 같습니다.
select ratio, col, value from GRAND_TOTALS cross apply ( select 'result', cast(result as varchar(10)) union all select 'score', cast(score as varchar(10)) union all select 'grade', grade ) c(col, value)
피벗 수행
데이터가 피벗 해제되면 PIVOT 함수를 적용하여 원하는 대로 열을 다시 정렬할 수 있습니다. 구문은 다음과 같습니다.
select ratio = col, [current ratio], [gearing ratio], [performance ratio], total from ( select ratio, col, value from GRAND_TOTALS cross apply ( select 'result', cast(result as varchar(10)) union all select 'score', cast(score as varchar(10)) union all select 'grade', grade ) c(col, value) ) d pivot ( max(value) for ratio in ([current ratio], [gearing ratio], [performance ratio], total) ) piv;
Result
이렇게 하면 원하는 출력이 생성됩니다.
| RATIO | CURRENT RATIO | GEARING RATIO | PERFORMANCE RATIO | TOTAL | |--------|---------------|---------------|-------------------|-----------| | grade | Good | Good | Satisfactory | Good | | result | 1.29400 | 0.33840 | 0.04270 | (null) | | score | 60.00000 | 70.00000 | 50.00000 | 180.00000 |
위 내용은 T-SQL에서 여러 열을 효율적으로 피벗하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!