Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memindahkan Lajur Pelayan SQL Dinamik ke Baris Menggunakan UNPIVOT?

Bagaimana untuk Memindahkan Lajur Pelayan SQL Dinamik ke Baris Menggunakan UNPIVOT?

Linda Hamilton
Lepaskan: 2024-12-05 04:39:11
asal
393 orang telah melayarinya

How to Transpose Dynamic SQL Server Columns to Rows Using UNPIVOT?

Ubah Lajur Pelayan SQL Dinamik ke Baris Menggunakan UNPIVOT

Dalam Pelayan SQL, fungsi UNPIVOT membenarkan untuk menukar lajur ke dalam baris, teknik yang sering dirujuk sebagai unpivoting. Ini amat berguna apabila bekerja dengan data yang mempunyai bilangan lajur yang dinamik atau berubah-ubah.

Senario Contoh

Pertimbangkan Jadual1 berikut:

Table1
-----------------------------------------
Id       abc  brt ccc ddq eee fff gga hxx
-----------------------------------------
12345     0    1   0   5   0   2   0   0  
21321     0    0   0   0   0   0   0   0   
33333     2    0   0   0   0   0   0   0   
41414     0    0   0   0   5   0   0   1   
55001     0    0   0   0   0   0   0   2   
60000     0    0   0   0   0   0   0   0 
77777     9    0   3   0   0   0   0   0
Salin selepas log masuk

Matlamatnya adalah untuk menyahpangsi Jadual1 ke dalam Jadual_Keputusan_Dijangka berikut, dengan mengambil kira hanya nilai yang lebih besar daripada 0:

Expected_Result_Table
---------------------
Id      Word   Qty>0
---------------------
12345    brt    1
12345    ddq    5
12345    fff    2
33333    abc    2
41414    eee    5
41414    hxx    1
55001    hxx    2
77777    abc    9
77777    ccc    3
Salin selepas log masuk

Penyelesaian Menggunakan UNPIVOT

Fungsi UNPIVOT mengambil jadual dengan berbilang lajur dan mengubahnya menjadi jadual yang lebih luas dengan dua lajur tambahan: nilai " " lajur yang mengandungi data daripada lajur jadual asal dan lajur "nama" yang mengenal pasti sumber lajur.

SELECT Id,
       name AS Word,
       value AS Qty>0
FROM Table1
UNPIVOT (value FOR name IN (abc, brt, ccc, ddq, eee, fff, gga, hxx)) AS unpvt
WHERE value > 0;
Salin selepas log masuk

Pertanyaan ini akan menjana hasil yang dijangkakan.

Atas ialah kandungan terperinci Bagaimana untuk Memindahkan Lajur Pelayan SQL Dinamik ke Baris Menggunakan UNPIVOT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan