Dapatkan Nilai Unik Menggunakan STRING_AGG dan DISTINCT dalam SQL Server
Fungsi SQL Server STRING_AGG, yang diperkenalkan dalam SQL Server 2017, membolehkan anda mengagregat rentetan daripada berbilang baris menjadi rentetan dipisahkan koma tunggal. Walau bagaimanapun, apabila digunakan dengan STRING_SPLIT untuk memisahkan nilai dalam medan yang dipisahkan koma, ia boleh menghasilkan nilai pendua dalam rentetan agregat.
Untuk mendapatkan nilai unik dalam rentetan agregat, anda boleh meningkatkan pertanyaan anda dengan menggunakan Kata kunci DISTINCT dalam subkueri. Pertanyaan yang diubah suai 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
Dalam pertanyaan yang dipertingkatkan ini:
Output pertanyaan yang diubah suai ini akan be:
ProjectID NewField ------------------------------- 2 O95833, Q96NY7-2 4 Q96NY7-2
Ini memberikan anda hasil yang diingini, dengan nilai unik yang diagregatkan menggunakan STRING_AGG.
Atas ialah kandungan terperinci Bagaimana Mendapatkan Nilai Unik dalam Rentetan Dipisahkan Koma Menggunakan STRING_AGG SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!