Rumah >pangkalan data >tutorial mysql >Bagaimana cara menukar baris ke lajur dalam SQL Server menggunakan fungsi pivot?
Jadual Pangsi dalam SQL Server menyediakan cara yang berkesan untuk menukar data daripada baris ke lajur. Walau bagaimanapun, pengguna mungkin menghadapi cabaran dalam membina pertanyaan yang betul.
Gunakan fungsi PIVOT pada nilai lajur yang diketahui:
Untuk nilai lajur yang dipratentukan (nombor minggu dalam kes ini), anda boleh menggunakan fungsi PIVOT secara langsung:
<code class="language-sql">select * from ( select store, week, xCount from yt ) src pivot ( sum(xcount) for week in ([1], [2], [3]) ) piv;</code>
Jana nilai lajur pangsi secara dinamik:
Untuk mengendalikan nilai lajur yang tidak diketahui (seperti nombor minggu dinamik), anda boleh menggunakan gabungan SQL dinamik dan fungsi tetingkap:
<code class="language-sql">DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX) select @cols = STUFF((SELECT ',' + QUOTENAME(Week) from yt group by Week order by Week FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)') ,1,1,'') set @query = 'SELECT store,' + @cols + ' from ( select store, week, xCount from yt ) x pivot ( sum(xCount) for week in (' + @cols + ') ) p ' execute(@query);</code>
Keputusan:
Kedua-dua kaedah menghasilkan hasil yang sama:
Atas ialah kandungan terperinci Bagaimana cara menukar baris ke lajur dalam SQL Server menggunakan fungsi pivot?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!