Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menggabungkan Nilai Unik ke dalam Rentetan Dipisahkan Koma Menggunakan SQL Server GROUP BY?

Bagaimana untuk Menggabungkan Nilai Unik ke dalam Rentetan Dipisahkan Koma Menggunakan SQL Server GROUP BY?

Susan Sarandon
Lepaskan: 2025-01-10 17:47:42
asal
157 orang telah melayarinya

How to Concatenate Unique Values into a Comma-Separated String Using SQL Server's GROUP BY?

Mengagregatkan Nilai Unik ke dalam Senarai Dipisahkan Koma dengan SQL Server GROUP BY

Cabaran:
Memandangkan jadual dengan entri pendua, matlamatnya adalah untuk mengumpulkan data mengikut lajur tertentu dan menyatukan nilai unik daripada lajur lain ke dalam rentetan tunggal yang dipisahkan koma.

Data Contoh:

Jadual berikut menggambarkan set data awal:

ID ReportId Email
1 1 [email protected]
2 2 [email protected]
3 1 [email protected]
4 3 [email protected]
5 3 [email protected]

Hasil Sasaran:

Hasil yang diingini ialah jadual dengan alamat e-mel yang disatukan:

ReportId Email
1 [email protected], [email protected]
2 [email protected]
3 [email protected], [email protected]

Penyelesaian menggunakan GROUP BY dan STUFF:

Fungsi STUFF digunakan untuk menggabungkan rentetan dengan cekap, mengalih keluar aksara utama. Penyelesaiannya adalah seperti berikut:

<code class="language-sql">SELECT ReportId, Email = 
    STUFF((SELECT ', ' + Email
           FROM your_table b 
           WHERE b.ReportId = a.ReportId 
          FOR XML PATH('')), 1, 2, '')
FROM your_table a
GROUP BY ReportId;</code>
Salin selepas log masuk

Penjelasan Terperinci:

Logik teras melibatkan subkueri dalam fungsi STUFF. Subkueri ini berulang melalui semua baris yang berkongsi ReportId yang sama seperti baris pertanyaan luar semasa. Untuk setiap baris yang sepadan, ia menambahkan koma dan nilai Email pada rentetan terkumpul. Pertanyaan luar kemudian menggunakan GROUP BY untuk mengagregatkan rentetan e-mel yang digabungkan ini untuk setiap ReportId unik. Fungsi STUFF mengalih keluar koma dan ruang awal.

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Nilai Unik ke dalam Rentetan Dipisahkan Koma Menggunakan SQL Server GROUP BY?. 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