Menggabungkan Hasil Pertanyaan SQL menjadi Rentetan Tunggal
Dalam Pelayan SQL, tugas menggabungkan berbilang hasil pertanyaan ke dalam rentetan tunggal boleh dicapai menggunakan pelbagai teknik.
UNTUK LALUAN XML dan STUFF
Untuk SQL Server 2005 dan ke atas, gabungan FOR XML PATH dan STUFF menawarkan pendekatan yang mudah:
DECLARE @CodeNameString varchar(100) SELECT @CodeNameString = STUFF( (SELECT ',' + CodeName FROM dbo.AccountCodes ORDER BY Sort FOR XML PATH('')), 1, 1, '')
Kaedah ini menggabungkan hasil pertanyaan ke dalam satu rentetan XML dan kemudian menggunakan STUFF untuk mengalih keluar aksara "," terkemuka.
Berasaskan XML Penggabungjalinan
Pilihan lain ialah memanfaatkan fungsi penggabungan XML:
DECLARE @CodeNameString varchar(100) SET @CodeNameString = (SELECT CodeName FROM dbo.AccountCodes FOR XML PATH(''))
Pendekatan berasaskan kursor
Dalam kes di mana penggabungan XML tidak boleh dilaksanakan, pendekatan berasaskan kursor boleh digunakan:
DECLARE @CodeNameString varchar(100) DECLARE @CodeName varchar(50) DECLARE cursor CURSOR FOR SELECT CodeName FROM dbo.AccountCodes ORDER BY Sort OPEN CURSOR FETCH NEXT FROM CURSOR INTO @CodeName WHILE @@FETCH_STATUS = 0 BEGIN SET @CodeNameString = @CodeNameString + @CodeName + ',' FETCH NEXT FROM CURSOR INTO @CodeName END CLOSE CURSOR DEALLOCATE CURSOR
Kaedah ini berulang melalui hasil pertanyaan dan menambahkannya pada pembolehubah @CodeNameString.
Pendekatan Pilihan
Yang diutamakan pendekatan bergantung pada versi SQL Server dan ciri data tertentu. Untuk kes di mana data mengandungi aksara khas seperti '<', '>' atau '&', pertimbangkan untuk menggunakan teknik FOR XML PATH dan STUFF, manakala untuk set data yang lebih besar atau senario sensitif prestasi, pendekatan berasaskan kursor mungkin lebih sesuai.
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Keputusan Pertanyaan SQL ke dalam Rentetan Tunggal dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!