Menghapuskan Pendua dalam Keputusan STRING_AGG
Tugasnya ialah untuk mendapatkan semula nilai unik menggunakan fungsi STRING_AGG dalam SQL Server, memastikan elemen pendua dialih keluar .
Dalam contoh pertanyaan yang disediakan, fungsi STRING_AGG digunakan untuk menggabungkan rentetan ke dalam medan dipisahkan koma tunggal, dikumpulkan mengikut ProjectID. Walau bagaimanapun, NewField yang terhasil mengandungi nilai pendua.
Untuk mendapatkan NewField yang unik, kami boleh menggunakan kata kunci DISTINCT dalam subkueri. Pertanyaan yang dikemas kini ialah:
SELECT ProjectID , STRING_AGG(value, ',') WITHIN GROUP (ORDER BY value) AS NewField FROM ( SELECT DISTINCT ProjectID , newId.value FROM [dbo].[Data] WITH (NOLOCK) CROSS APPLY STRING_SPLIT([bID],';') AS newId WHERE newId.value IN ( 'O95833' , 'Q96NY7-2' ) ) x GROUP BY ProjectID ORDER BY ProjectID
Subquery terlebih dahulu memilih nilai ProjectID dan newId.value yang berbeza daripada jadual asal. Nilai berbeza ini kemudiannya digunakan dalam pertanyaan luar untuk melaksanakan operasi STRING_AGG, memastikan tiada pendua hadir dalam hasil NewField akhir.
Melaksanakan pertanyaan yang diubah suai ini menghasilkan output yang diingini dengan hanya nilai unik:
ProjectID | NewField ----------+---------- 2 | O95833, Q96NY7-2 4 | Q96NY7-2
Atas ialah kandungan terperinci Bagaimana untuk Menghapuskan Pendua Apabila Menggunakan STRING_AGG dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!