Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengagregat dan Mengasingkan Nilai Koma dalam SQL Server Menggunakan FOR XML PATH?

Bagaimana untuk Mengagregat dan Mengasingkan Nilai Koma dalam SQL Server Menggunakan FOR XML PATH?

Patricia Arquette
Lepaskan: 2025-01-07 21:19:40
asal
885 orang telah melayarinya

How to Aggregate and Comma-Separate Values in SQL Server Using FOR XML PATH?

SQL Server: Menggabungkan Nilai dengan Koma semasa Pengagregatan

Selalunya dalam SQL Server, anda perlu mengumpulkan data mengikut lajur tertentu dan kemudian menggabungkan nilai yang berkaitan ke dalam satu rentetan yang dipisahkan koma. Mari kita gambarkan ini dengan contoh. Bayangkan jadual bernama YourTable dengan lajur ID dan Value:

<code>ID   |  Value
-------|--------
1    |   a
1    |   b
2    |   c</code>
Salin selepas log masuk

Matlamatnya adalah untuk menjana set hasil di mana setiap ID unik mempunyai rentetan dipisahkan koma yang sepadan dengan entri Value yang berkaitan. Kita boleh mencapai ini menggunakan kaedah FOR XML PATH:

<code class="language-sql">SELECT 
    ID, 
    STUFF((SELECT ', ' + Value
           FROM YourTable t2
           WHERE t1.ID = t2.ID
           FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 2, '') AS Values
FROM YourTable t1
GROUP BY ID;</code>
Salin selepas log masuk

Pertanyaan ini berfungsi seperti berikut:

  1. Luar SELECT: Ini memilih lajur ID dan bersedia untuk pengagregatan.
  2. Dalaman SELECT: Ini mendapatkan semula semua Value entri yang sepadan dengan ID semasa daripada pertanyaan luar. ', ' Value menambah koma dan ruang sebelum setiap nilai.
  3. FOR XML PATH(''): Ini menukar hasil pertanyaan dalaman kepada rentetan XML, menggabungkan nilai dengan berkesan. Rentetan kosong '' menghalang teg XML daripada dijana.
  4. .value('.', 'NVARCHAR(MAX)'): Ini mengekstrak rentetan bercantum daripada XML.
  5. STUFF(..., 1, 2, ''): Ini mengalih keluar ', ' di hadapan daripada rentetan bercantum.

Keluaran akhir ialah:

<code>ID   |  Values
-------|--------
1    |   a, b
2    |   c</code>
Salin selepas log masuk

Teknik ini menyediakan cara yang ringkas dan cekap untuk melaksanakan pengagregatan dipisahkan koma dalam SQL Server.

Atas ialah kandungan terperinci Bagaimana untuk Mengagregat dan Mengasingkan Nilai Koma dalam SQL Server Menggunakan FOR XML PATH?. 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