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
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
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;
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!