Menyertai lajur data yang dipisahkan koma
Untuk menyertai dua jadual yang mengandungi lajur data yang dipisahkan koma, pertimbangkan pendekatan berikut:
Normalkan
Normalkan jadual yang mengandungi nilai dipisahkan koma dengan mencipta jadual berasingan dengan lajur untuk setiap nilai. Ini memudahkan pertanyaan dan mengelakkan manipulasi rentetan yang rumit.
Buat Fungsi Split
Buat fungsi pisah yang menukar rentetan yang dipisahkan koma kepada baris individu. Ini membolehkan anda melakukan cantuman pada baris.
Gunakan FOR XML PATH and STUFF
Guna FOR XML PATH untuk menggabungkan nilai menjadi rentetan yang dipisahkan koma dan STUFF untuk mengalih keluar koma di hadapan.
Memohon Secara Terus UNTUK XML PATH
Mohon UNTUK LALUAN XML terus ke data untuk menjana output yang diingini.
Contoh
Fungsi Pisah dengan Gabungan
;with cte as ( select c.col1, t1.col2 from t1 inner join ( select t2.col1, i.items col2 from t2 cross apply dbo.split(t2.col2, ',') i ) c on t1.col1 = c.col2 ) select distinct c.col1, STUFF( (SELECT distinct ', ' + c1.col2 FROM cte c1 where c.col1 = c1.col1 FOR XML PATH ('')), 1, 1, '') col2 from cte c
UNTUK LALUAN XML dan BAHAN
select col1, ( select ', '+t1.col2 from t1 where ','+t2.col2+',' like '%,'+cast(t1.col1 as varchar(10))+',%' for xml path(''), type ).value('substring(text()[1], 3)', 'varchar(max)') as col2 from t2;
Atas ialah kandungan terperinci Bagaimana untuk Menyertai Jadual dengan Lajur Dibataskan Koma?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!