Kaedah pangsi berbilang lajur SQL Server
Menukar jadual kepada bentuk terpindahnya berguna dalam pelbagai situasi. Artikel ini memfokuskan pada cara menukar jadual dengan berbilang lajur (A, B, dll.) dalam Microsoft SQL Server.
Data pangsi menggunakan UNPIVOT dan PIVOT
Untuk menukar jadual, anda boleh menggunakan fungsi UNPIVOT dan PIVOT bersama-sama:
Contohnya adalah seperti berikut:
<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>
Kaedah CROSS APPLY dan NILAI untuk SQL Server 2008 dan ke atas
Untuk SQL Server 2008 dan ke atas, anda juga boleh menggunakan CROSS APPLY digabungkan dengan VALUES untuk membongkar data:
<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>
Mohon pada pertanyaan anda
Jika anda ingin menukar hasil pertanyaan semasa, anda boleh menggunakan kaedah yang serupa:
<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>
Ini akan menukar lajur ACalls dan BCalls ke dalam baris dan membuat pengepala lajur untuk setiap hari dalam minggu (Isnin, Sel, dll.).
Atas ialah kandungan terperinci Bagaimana untuk Memindahkan Jadual dengan Pelbagai Lajur dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!