Cara Mengubah Berbilang Lajur dalam TSQL
Dalam TSQL, memutar jadual melibatkan penyusunan semula baris ke dalam lajur. Walau bagaimanapun, apabila berurusan dengan berbilang lajur, adalah penting untuk mengekalkan semua label.
Menyahpivot Data
Untuk bermula, memandangkan kami mempunyai berbilang lajur data, adalah disyorkan untuk menyahpangsinya ke dalam satu lajur. Ini boleh dicapai menggunakan sama ada fungsi UNPIVOT atau kaedah CROSS APPLY, bergantung pada versi SQL Server. Sintaks untuk nyahpaut ialah:
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)
Melaksanakan Pivot
Setelah data dinyahpivot, anda boleh menggunakan fungsi PIVOT untuk menyusun semula lajur seperti yang dikehendaki. Sintaksnya ialah:
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;
Hasil
Ini akan menghasilkan output yang diingini:
| 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 |
Atas ialah kandungan terperinci Bagaimana untuk Pivot Pelbagai Lajur dalam T-SQL dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!