Rumah >pangkalan data >tutorial mysql >Bagaimanakah STUFF dan FOR XML PATH Menggabungkan Data dalam Pelayan SQL?

Bagaimanakah STUFF dan FOR XML PATH Menggabungkan Data dalam Pelayan SQL?

Susan Sarandon
Susan Sarandonasal
2025-01-22 22:49:11194semak imbas

How Do STUFF and FOR XML PATH Concatenate Data in SQL Server?

Gabungan pintar STUFF dan FOR XML PATH dalam SQL Server

Dalam SQL Server, gabungan fungsi STUFF dan FOR XML PATH boleh menyambung dan memproses data dengan cekap. Mari lihat bagaimana kedua-dua fungsi ini berfungsi bersama untuk mencapai output yang diingini.

Peranan FOR XML PATH

UNTUK LALUAN XML Tukar hasil pertanyaan kepada rentetan elemen XML. Menambah rentetan kosong sebagai argumen ('') pada FOR XML PATH menghasilkan senarai nilai yang dipisahkan koma. Contohnya:

<code class="language-sql">SELECT ',' + name 
FROM temp1
FOR XML PATH ('')</code>

Hasilnya ialah:

<code>,aaa,bbb,ccc,ddd,eee</code>

Peranan STUFF

Fungsi STUFF digunakan untuk memasukkan atau menggantikan aksara dalam rentetan. Dengan menentukan kedudukan permulaan dan parameter panjang sebagai 1, anda mengalih keluar aksara pertama rentetan dengan berkesan:

<code class="language-sql">STUFF(
    (SELECT ',' + NAME
    FROM temp1
    FOR XML PATH('')
    ), 1, 1, ''
)</code>

Ini akan mengalih keluar koma pada permulaan senarai nama:

<code>aaa,bbb,ccc,ddd,eee</code>

Sambungan berasaskan ID

Akhir sekali, gunakan Kumpulan Oleh untuk menyertai senarai yang diubah suai dengan lajur Id untuk mengagregat dan mengembalikan 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>

Kod ini menerangkan secara ringkas cara STUFF dan FOR XML PATH berfungsi bersama dalam SQL Server untuk menghasilkan output yang diingini.

Atas ialah kandungan terperinci Bagaimanakah STUFF dan FOR XML PATH Menggabungkan Data dalam Pelayan SQL?. 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