Rumah > pangkalan data > tutorial mysql > Bagaimanakah FOR XML PATH dan Fungsi STUFF Bekerja Bersama untuk Penggabungan Rentetan dalam SQL Server?

Bagaimanakah FOR XML PATH dan Fungsi STUFF Bekerja Bersama untuk Penggabungan Rentetan dalam SQL Server?

DDD
Lepaskan: 2025-01-22 23:02:15
asal
423 orang telah melayarinya

How Do FOR XML PATH and STUFF Functions Work Together for String Concatenation in SQL Server?

Penggabungan Rentetan Pelayan SQL: Menguasai UNTUK LALUAN XML dan STUFF

SQL Server menyediakan keupayaan manipulasi rentetan yang mantap, terutamanya dengan fungsi FOR XML PATH dan STUFF. Fungsi ini tidak ternilai untuk menggabungkan data daripada berbilang baris ke dalam satu rentetan.

Menyahbina FOR XML PATH

Fungsi FOR XML PATH menukar hasil pertanyaan kepada format XML. Dengan menentukan laluan, anda mengawal struktur XML. Contohnya, untuk membuat senarai nama yang dipisahkan koma:

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

Ini menjana rentetan XML dengan koma di hadapan.

Menggunakan Fungsi STUFF

Fungsi STUFF mengubah suai rentetan dengan menggantikan aksara. Ia memerlukan empat argumen: rentetan asal, kedudukan permulaan, bilangan aksara untuk dialih keluar dan rentetan gantian.

Untuk mengalih keluar koma awal daripada output XML di atas:

<code class="language-sql">STUFF((SELECT ',' + name FROM temp1 FOR XML PATH('')), 1, 1, '')</code>
Salin selepas log masuk

Ini membersihkan rentetan dengan cekap, meninggalkan senarai nama yang dipisahkan koma.

Penggunaan Sinergis FOR XML PATH dan STUFF

Menggabungkan fungsi ini membolehkan penggabungan set rekod yang berkuasa. Pertimbangkan pertanyaan SQL ini:

<code class="language-sql">SELECT ID, 
    abc = STUFF(
                 (SELECT ',' + name 
                  FROM temp1 
                  WHERE t1.id = t2.id
                  FOR XML PATH (''))
                 , 1, 1, '') 
FROM temp1 t2
GROUP BY id</code>
Salin selepas log masuk

Pertanyaan ini melakukan langkah berikut:

  1. FOR XML PATH Subquery: Pertanyaan bersarang ini mendapatkan semula nama yang dikaitkan dengan setiap ID, menyertai temp1 (disebut sebagai t1) dengan jadual pertanyaan luar (disebut sebagai t2). FOR XML PATH('') menggabungkan nama-nama ini menjadi satu elemen XML.
  2. STUFF Fungsi: Pertanyaan luar menggunakan STUFF untuk mengalih keluar koma utama daripada rentetan XML yang dijana oleh subkueri.
  3. GROUP BY Fasal: GROUP BY id memastikan bahawa hasil akhir hanya mengandungi ID unik, setiap satunya dengan nama digabungkan yang sepadan.

Kesimpulan

Kuasa gabungan FOR XML PATH dan STUFF menawarkan pendekatan yang diperkemas untuk penggabungan rentetan dalam SQL Server. Teknik ini memudahkan penciptaan rentetan berformat, menggabungkan teks daripada berbilang baris dan membina pengagregatan tersuai.

Atas ialah kandungan terperinci Bagaimanakah FOR XML PATH dan Fungsi STUFF Bekerja Bersama untuk Penggabungan Rentetan dalam SQL Server?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan