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
Susan Sarandonasal
2025-01-10 17:47:42235semak imbas

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>

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!

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