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

Bagaimana Mendapatkan Nilai Unik dalam Rentetan Dipisahkan Koma Menggunakan STRING_AGG SQL Server?

Linda Hamilton
Lepaskan: 2025-01-04 05:28:39
asal
303 orang telah melayarinya

How to Get Unique Values in a Comma-Separated String Using SQL Server's STRING_AGG?

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
Salin selepas log masuk

Dalam pertanyaan yang dipertingkatkan ini:

  • Subkueri (SELECT DISTINCT ProjectID, newId.value FROM [dbo].[Data] WITH (NOLOCK) SILANG GUNA STRING_SPLIT([bID],';') SEBAGAI newId DI MANA newId.value IN ( 'O95833' , 'Q96NY7-2' )) menggunakan kata kunci DISTINCT untuk mengalih keluar nilai pendua daripada set hasil.
  • Fungsi STRING_AGG digunakan pada nilai yang berbeza, memastikan bahawa hanya elemen unik disertakan dalam rentetan agregat.

Output pertanyaan yang diubah suai ini akan be:

ProjectID   NewField
-------------------------------
2           O95833, Q96NY7-2
4           Q96NY7-2
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan