Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Nilai Dipisahkan Koma Unik Menggunakan STRING_AGG dalam Pelayan SQL?
Dapatkan Nilai Unik Menggunakan STRING_AGG dalam SQL Server
Masalah:
Menggunakan fungsi STRING_AGG , anda boleh mendapatkan semula nilai yang dipisahkan koma daripada lajur. Walau bagaimanapun, hasilnya mungkin termasuk pendua. Bagaimanakah anda hanya mendapat nilai unik dalam output?
Pertanyaan:
Pertanyaan berikut menggunakan STRING_AGG untuk mendapatkan nilai unik:
SELECT ProjectID, STRING_AGG(DISTINCT newID.value, ',') WITHIN GROUP (ORDER BY newID.value) AS NewField FROM [dbo].[Data] WITH (NOLOCK) CROSS APPLY STRING_SPLIT([bID], ';') AS newID WHERE newID.value IN ('O95833', 'Q96NY7-2') GROUP BY ProjectID ORDER BY ProjectID
Penjelasan:
Kata kunci DISTINCT dalam subquery menghapuskan nilai pendua daripada set hasil. Pengendali CROSS APPLY membahagikan lajur bida kepada nilai individu menggunakan fungsi STRING_SPLIT. Fungsi STRING_AGG kemudian menggabungkan nilai ini menjadi rentetan yang dipisahkan koma dan klausa ORDER BY memastikan bahawa nilai diisih sebelum penggabungan.
Output:
Yang akhir output hanya memaparkan nilai unik untuk setiap ProjectID:
ProjectID NewField ------------------------------- 2 O95833, Q96NY7-2 4 Q96NY7-2
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Dipisahkan Koma Unik Menggunakan STRING_AGG dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!