Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Menggabungkan Label Berdasarkan ID Padanan dalam SQL?

Bagaimanakah Saya Boleh Menggabungkan Label Berdasarkan ID Padanan dalam SQL?

Patricia Arquette
Lepaskan: 2024-12-30 22:06:15
asal
720 orang telah melayarinya

How Can I Concatenate Labels Based on Matching IDs in SQL?

Menggabungkan Nilai Berdasarkan ID

Untuk menyelesaikan tugas yang disediakan untuk menggabungkan berbilang baris dengan ID yang sama dan menggabungkan label yang sepadan, gunakan berikut pertanyaan SQL:

declare @T table(Response_ID int, Label varchar(50))
insert into @T values
(12147,          'It was not clear'),
(12458,          'Did not Undersstand'),
(12458,          'Was not resolved'),
(12458,          'Did not communicate'),
(12586,          'Spoke too fast'),
(12587,          'Too slow')

select T1.Response_ID,
       stuff((select ','+T2.Label
              from @T as T2
              where T1.Response_ID = T2.Response_ID
              for xml path(''), type).value('.', 'varchar(max)'), 1, 1, '') as Label
from @T as T1
group by T1.Response_ID
Salin selepas log masuk

Di dalam pertanyaan:

  • @T mewakili jadual input dengan lajur Response_ID dan Label.
  • Data dimasukkan ke dalam @T untuk dijadikan sebagai titik permulaan untuk pertanyaan.
  • Subquery pertama mendapatkan semula nilai Label untuk setiap Response_ID dan menggabungkannya dengan koma. Klausa FOR XML menjana rentetan XML, yang kemudiannya ditukar kepada rentetan tunggal menggunakan ungkapan VALUE('','VARCHAR(MAX)').
  • Pertanyaan luar mengumpulkan hasil mengikut Response_ID dan menggunakan STUFF () untuk menggabungkan nilai Label gabungan dengan Response_ID.
  • Akhir sekali, ia memaparkan nilai gabungan untuk setiap Respons_ID unik.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Label Berdasarkan ID Padanan dalam SQL?. 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