Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan Operasi PIVOT T-SQL Tanpa Fungsi Agregat?

Bagaimana untuk Melaksanakan Operasi PIVOT T-SQL Tanpa Fungsi Agregat?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-20 09:51:09962semak imbas

How to Perform a T-SQL PIVOT Operation Without Aggregate Functions?

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!

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