Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan Operasi PIVOT T-SQL Tanpa Fungsi Agregat?
Kendalian PIVOT T-SQL tanpa fungsi agregat
Tidak seperti operasi PIVOT, yang biasanya memerlukan fungsi agregat, transformasi PIVOT juga boleh dilakukan tanpa fungsi agregat. Ini mungkin timbul dalam senario tertentu di mana pembinaan semula data diperlukan tanpa pengagregatan.
Pertimbangkan borang berikut:
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 |
Matlamatnya adalah untuk memutar data ini ke hasil berikut:
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 menggunakan PIVOT tanpa fungsi agregat, anda boleh menggunakan pertanyaan 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 melaksanakan pernyataan kes dalam operasi PIVOT untuk memilih nilai minimum setiap DBColumnName untuk ID Pelanggan yang diberikan. Memandangkan terdapat hanya satu baris data untuk setiap kombinasi CustomerID dan DBColumnName, fungsi MIN mengembalikan nilai yang diperlukan.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Operasi PIVOT T-SQL Tanpa Fungsi Agregat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!