집 >데이터 베이스 >MySQL 튜토리얼 >T-SQL 테이블에서 여러 열을 피벗하는 방법은 무엇입니까?
여러 열에 대한 T-SQL 테이블 피벗
T-SQL에서 데이터 피벗은 테이블 구조를 변환하여 표시하는 데 유용한 기술이 될 수 있습니다. 데이터가 다릅니다. 피벗에 여러 열을 처리하는 경우 데이터 피벗을 취소하는 것이 도움이 될 수 있습니다.
다음 표를 고려하세요.
RATIO | RESULT | SCORE | GRADE |
---|---|---|---|
Current Ratio | 1.294 | 60 | Good |
Gearing Ratio | 0.3384 | 70 | Good |
Performance Ratio | 0.0427 | 50 | Satisfactory |
TOTAL | NULL | 180 | Good |
이 테이블을 피벗하여 다음과 같은 원하는 결과를 얻는 것이 목표입니다.
RATIO | Current Ratio | Gearing Ratio | Performance Ratio | TOTAL |
---|---|---|---|---|
Result | 1.294 | 0.3384 | 0.0427 | NULL |
Score | 60 | 70 | 50 | 180 |
Grade | Good | Good | Satisfactory | Good |
이를 달성하려면 다음을 따르세요. 단계:
결과, 점수 및 성적 열 피벗 해제:
UNPIVOT 기능 또는 CROSS APPLY를 사용하여 data:
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;
이렇게 하면 원하는 결과가 나올 것입니다. 여러 열이 피벗된 테이블을 제공합니다.
위 내용은 T-SQL 테이블에서 여러 열을 피벗하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!