Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggabungkan Berbilang Label ke dalam Baris Tunggal Berdasarkan ID?

Bagaimana untuk Menggabungkan Berbilang Label ke dalam Baris Tunggal Berdasarkan ID?

Susan Sarandon
Susan Sarandonasal
2024-12-30 21:52:10807semak imbas

How to Concatenate Multiple Labels into a Single Row Based on ID?

Menggabungkan Nilai Berdasarkan ID

Soalan ini bertujuan untuk mengubah jadual dengan berbilang baris setiap ID dan satu lajur 'Label' menjadi jadual dengan satu baris setiap ID dan lajur 'Label' yang digabungkan. Setiap label hendaklah dipisahkan dengan koma.

Data yang disediakan terdiri daripada pemerhatian berikut:

Response_ID Label
12147 It was not clear
12458 Did not Undersstand
12458 Was not resolved
12458 Did not communicate
12586 Spoke too fast
12587 Too slow

Output yang dikehendaki ialah:

Response_ID Label
12147 It was not clear
12458 Did not Undersstand,Was not resolved,Did not communicate
12586 Spoke too fast
12587 Too Slow

Untuk mencapai transformasi ini , coretan kod berikut boleh digunakan:

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

Subkueri dalam fungsi 'barang' menggunakan penggabungan melalui operator ' ' dan kaedah XML untuk mengendalikan gabungan label. Fungsi 'nilai' parameter 'jenis' menukarkan output XML kepada jenis varchar(maks) untuk memastikan paparan hasil bercantum yang betul.

Sila ambil perhatian bahawa tanpa perintah demi pernyataan dalam subkueri, susunan bercantum rentetan tidak boleh dijamin.

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Berbilang Label ke dalam Baris Tunggal Berdasarkan ID?. 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