Rumah >pangkalan data >tutorial mysql >Bagaimanakah Operator PIVOT SQL Server Boleh Mengubah Baris ke Lajur?

Bagaimanakah Operator PIVOT SQL Server Boleh Mengubah Baris ke Lajur?

Linda Hamilton
Linda Hamiltonasal
2024-12-17 13:49:11208semak imbas

How Can SQL Server's PIVOT Operator Transpose Rows into Columns?

Memindahkan Baris ke Lajur dengan Pangsi Pelayan SQL?

Dalam Pelayan SQL, pengendali PIVOT ialah alat yang berkuasa untuk menyusun semula data jadual daripada baris kepada lajur. Ia amat berguna apabila anda perlu meringkaskan data merentas berbilang baris untuk set lajur tertentu.

Untuk menggambarkan, pertimbangkan jadual berikut:

| Name1 | Name2 | Value |
|---|---|---|
| A     | P1     | 1     |
| A     | P2     | 1     |
| A     | P3     | 2     |
| B     | P1     | 3     |
| B     | P2     | 1     |
| B     | P4     | 1     |

Andaikan kami ingin mengubahnya data ke dalam format berikut:

|       | A     | B     |
|---|---|---|
| P1     | 1     | 4     |
| P2     | 1     | 1     |
| P3     | 2     | NULL  |
| P4     | NULL  | 1     |

Untuk mencapai transformasi ini, kami boleh menggunakan operator PIVOT sebagai berikut:

DECLARE @cols VARCHAR(1000)
DECLARE @sqlquery VARCHAR(2000)

SELECT  @cols = STUFF(( SELECT distinct  ',' + QuoteName([Name1])
                        FROM myTable FOR XML PATH('') ), 1, 1, '') 


SET @sqlquery = 'SELECT * FROM
      (SELECT Name2, Name1, Value
       FROM myTable ) base
       PIVOT (Sum(Value) FOR [Name1]
       IN (' + @cols + ')) AS finalpivot'

EXECUTE ( @sqlquery )

Dengan memasang pertanyaan secara dinamik, kaedah ini membolehkan kami memutar data dengan set lajur yang berbeza, menyediakan penyelesaian yang fleksibel dan berskala.

Atas ialah kandungan terperinci Bagaimanakah Operator PIVOT SQL Server Boleh Mengubah Baris ke Lajur?. 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