Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Nilai Dipisahkan Koma Unik Menggunakan STRING_AGG dalam Pelayan SQL?

Bagaimana untuk Mendapatkan Nilai Dipisahkan Koma Unik Menggunakan STRING_AGG dalam Pelayan SQL?

Linda Hamilton
Linda Hamiltonasal
2025-01-03 10:22:39892semak imbas

How to Get Unique Comma-Separated Values Using STRING_AGG in SQL Server?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn