Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Pivot Jadual T-SQL Tanpa Menggunakan Fungsi Agregat?
T-SQL Pivot: Tiada Fungsi Pengagregatan Diperlukan
Dalam sesetengah kes, anda mungkin perlu menukar data dalam jadual kepada format pangsi tanpa menggunakan fungsi agregat seperti SUM atau COUNT. Contoh ini menunjukkan cara unik untuk menggunakan operator PIVOT apabila fungsi agregat tidak diperlukan.
Andaikan terdapat jadual sumber yang mengandungi maklumat pelanggan:
CustomerID | DBColumnName | Data |
---|---|---|
1 | FirstName | Joe |
1 | MiddleName | S |
1 | LastName | Smith |
1 | Date | 12/12/2009 |
2 | FirstName | Sam |
2 | MiddleName | S |
2 | LastName | Freddrick |
2 | Date | 1/12/2009 |
3 | FirstName | Jaime |
3 | MiddleName | S |
3 | LastName | Carol |
3 | Date | 12/1/2009 |
Output sasaran ialah jadual pangsi yang menunjukkan maklumat pelanggan dalam lajur berasingan:
CustomerID | FirstName | MiddleName | LastName | Date |
---|---|---|---|---|
1 | Joe | S | Smith | 12/12/2009 |
2 | Sam | S | Freddrick | 1/12/2009 |
3 | Jaime | S | Carol | 12/1/2009 |
Untuk mencapai ini tanpa menggunakan fungsi agregat, anda boleh menggunakan pertanyaan T-SQL berikut:
<code class="language-sql">SELECT CustomerID, MIN(CASE DBColumnName WHEN 'FirstName' THEN Data END) AS FirstName, MIN(CASE DBColumnName WHEN 'MiddleName' THEN Data END) AS MiddleName, MIN(CASE DBColumnName WHEN 'LastName' THEN Data END) AS LastName, MIN(CASE DBColumnName WHEN 'Date' THEN Data END) AS Date FROM table GROUP BY CustomerId;</code>
Pertanyaan ini menggunakan fungsi MIN dalam pernyataan CASE untuk memilih nilai minimum bagi setiap lajur berdasarkan DBColumnName. Klausa "GROUP BY" digunakan untuk mengumpulkan hasil mengikut CustomerID.
Walaupun pendekatan ini mungkin kelihatan sukar digunakan dan tidak cekap berbanding dengan menggunakan fungsi agregat, ia boleh memberikan fleksibiliti yang lebih besar dalam situasi tertentu di mana fungsi agregat tidak sesuai (seperti apabila berurusan dengan nilai unik atau berbeza) seks. Pastikan anda menilai keperluan khusus pertanyaan anda dan pilih pendekatan yang paling sesuai untuk situasi yang diberikan.
Atas ialah kandungan terperinci Bagaimana untuk Pivot Jadual T-SQL Tanpa Menggunakan Fungsi Agregat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!