Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencapai Pivoting Dinamik Data Jadual dalam T-SQL?

Bagaimana untuk Mencapai Pivoting Dinamik Data Jadual dalam T-SQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-14 20:20:45800semak imbas

How to Achieve Dynamic Pivoting of Tabular Data in T-SQL?

Pangsi Dinamik dalam T-SQL

Menukar data jadual kepada format yang lebih ringkas adalah penting untuk analisis data dan penjanaan laporan. Satu teknik yang biasa digunakan ialah pivoting, yang melibatkan penukaran baris kepada lajur. Dalam contoh ini, matlamat kami ialah untuk memutar data daripada jadual dengan struktur yang serupa dengan:

ItemID ColumnName Value
1 name Peter
1 phone 12345678
1 email [email protected]
2 name John
2 phone 87654321
2 email [email protected]
3 name Sarah
3 phone 55667788
3 email [email protected]

Tukar kepada struktur yang lebih mesra pengguna:

ItemID name phone email
1 Peter 12345678 [email protected]
2 John 87654321 [email protected]
3 Sarah 55667788 [email protected]

Untuk mencapai ini dalam T-SQL menggunakan pangsi dinamik, ikut langkah berikut:

  1. Buat senarai lajur dinamik:

    <code class="language-sql"> DECLARE @cols NVARCHAR(2000)
     SELECT  @cols = STUFF(( SELECT DISTINCT TOP 100 PERCENT
                                      '],[' + t.ColumnName
                              FROM    #Table AS t
                              FOR XML PATH('')
                            ), 1, 2, '') + ']' </code>
  2. Bina pertanyaan dinamik:

    <code class="language-sql"> DECLARE @query NVARCHAR(4000) 
     SET @query = N'SELECT ID,'+ @cols +' FROM 
     (SELECT t1.ID,t1.ColumnName , t1.Value FROM #Table AS t1) p 
     PIVOT (MAX([Value]) FOR ColumnName IN ( '+ @cols +' )) 
     AS pvt;' </code>
  3. Laksanakan pertanyaan:

    <code class="language-sql"> EXECUTE(@query)</code>

Pertanyaan yang dijana akan menggerakkan data secara dinamik, mewujudkan struktur jadual yang lebih padat dan mudah dibaca.

Pendekatan ini menyediakan mekanisme yang fleksibel untuk memutar data, terutamanya jika nama lajur adalah dinamik atau mungkin berubah. Ia membolehkan transformasi data yang cekap dan automatik, menjadikannya alat yang berkuasa untuk pelbagai analisis data dan aplikasi pelaporan.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Pivoting Dinamik Data Jadual dalam T-SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn