fungsi kuat
SQL Server menawarkan cara yang diperkemas untuk mengubah data dari struktur berasaskan baris ke satu lajur berasaskan lajur. Ini amat berguna untuk membuat laporan jadual yang lebih mudah dibaca dan dianalisis.
PIVOT
Bayangkan meja dengan nombor kedai, nombor minggu, dan nilai (mari kita panggilnya
xCount
Jika anda sudah mengetahui nombor minggu tertentu yang anda perlukan, pertanyaan
mudah boleh digunakan:
PIVOT
<code class="language-sql">SELECT * FROM ( SELECT store, week, xCount FROM yt ) src PIVOT (SUM(xcount) FOR week IN ([1], [2], [3])) piv;</code>
menentukan minggu ([1], [2], [3] dalam contoh ini). xCount
IN
Apabila nombor minggu dinamik (tidak diketahui terlebih dahulu), pendekatan yang lebih fleksibel diperlukan:
Pertanyaan dinamik ini mula-mula membina senarai koma yang dipisahkan dari nombor minggu yang unik dari jadual
<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>
untuk membuat output berasaskan lajur yang dikehendaki. Hasilnya adalah jadual pivot yang menunjukkan kedai sebagai baris dan minggu sebagai lajur, dengan nilai yt
yang sepadan. Kaedah ini menyesuaikan diri dengan beberapa minggu yang hadir dalam data. PIVOT
Atas ialah kandungan terperinci Bagaimana untuk Menukar Baris ke Lajur dalam Pelayan SQL Menggunakan PIVOT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!