SQL Server: Menggabungkan STUFF dan FOR XML PATH untuk Penggabungan Rentetan Berkumpulan
Panduan ini menerangkan cara menggunakan fungsi STUFF
SQL Server dan klausa FOR XML PATH
bersama-sama untuk menggabungkan rentetan dengan cekap dalam kumpulan.
Memahami Komponen:
FOR XML PATH('')
: Klausa ini menukar hasil pertanyaan kepada format XML. Menggunakan rentetan kosong (''
) sebagai argumen PATH
menjana senarai nilai yang dipisahkan koma daripada lajur yang ditentukan, disertakan dalam teg XML. Contohnya:
<code class="language-sql">SELECT ',' + name FROM temp1 FOR XML PATH('')</code>
Ini akan menghasilkan: ,aaa,bbb,ccc,ddd,eee
STUFF
Fungsi: Fungsi STUFF
mengubah suai rentetan dengan menggantikan sebahagian daripadanya. Kami menggunakannya di sini untuk mengalih keluar koma utama yang dihasilkan oleh FOR XML PATH('')
. Parameter fungsi ialah:
Oleh itu, STUFF((SELECT ',' NAME FROM temp1 FOR XML PATH('')), 1, 1, '')
mengalih keluar koma awal, menghasilkan: aaa,bbb,ccc,ddd,eee
Menyertai dan Menghimpun: Pertanyaan terakhir menggabungkan rentetan bercantum kembali ke jadual asal menggunakan lajur ID
, mengumpulkan hasil untuk mencapai output yang diingini:
<code class="language-sql">SELECT ID, abc = STUFF( (SELECT ',' + name FROM temp1 t1 WHERE t1.id = t2.id FOR XML PATH('')), 1, 1, '') FROM temp1 t2 GROUP BY id;</code>
Ini menjana set hasil seperti ini:
Id | abc |
---|---|
1 | aaa,bbb,ccc,ddd,eee |
Kaedah ini menyediakan cara ringkas dan berkesan untuk menggabungkan rentetan dalam kumpulan dalam SQL Server, mengelakkan keperluan untuk teknik yang lebih kompleks.
Atas ialah kandungan terperinci Bagaimanakah fungsi STUFF SQL Server dan klausa FOR XML PATH digunakan bersama untuk menggabungkan rentetan dalam kumpulan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!