
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 ProjectIDDalam 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!
Nombor halaman perkataan bermula dari halaman ketiga sebagai 1 tutorial
Tiga kaedah pengekodan yang biasa digunakan
Penggunaan fungsi terima
Apakah enjin aliran kerja java yang ada?
Bagaimana untuk mengikat data dalam senarai lungsur
Apakah perisian pengaturcaraan bahasa C?
Apakah itu CONNECTION_REFUSED
Bagaimana untuk menyelesaikan 400 permintaan buruk