Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Pivot Berbilang Lajur dalam Jadual T-SQL?
Jadual T-SQL Pangsi untuk Berbilang Lajur
Dalam T-SQL, data pangsi boleh menjadi teknik yang berguna untuk mengubah struktur jadual untuk dibentangkan data secara berbeza. Apabila pivoting melibatkan pengendalian berbilang lajur, nyahpangsi data mungkin terbukti bermanfaat.
Pertimbangkan jadual berikut:
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 |
Matlamatnya adalah untuk memutar jadual ini untuk mendapatkan hasil yang diingini berikut:
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 |
Untuk mencapai ini, kita boleh mengikuti ini langkah:
Nyahpivot Keputusan, Skor dan Lajur Gred:
Gunakan fungsi UNPIVOT atau CROSS APPLY untuk menyahpangsi 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 Data Unpivoted:
Gunakan fungsi PIVOT pada data unpivoted:
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;
Ini akan menghasilkan hasil yang diingini, menyediakan jadual dengan berbilang lajur berputar.
Atas ialah kandungan terperinci Bagaimana untuk Pivot Berbilang Lajur dalam Jadual T-SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!