首頁 >資料庫 >mysql教程 >如何在 SQL Server 中使用 STRING_AGG 取得唯一的逗號分隔值?

如何在 SQL Server 中使用 STRING_AGG 取得唯一的逗號分隔值?

Linda Hamilton
Linda Hamilton原創
2025-01-03 10:22:39904瀏覽

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

在SQL Server 中使用STRING_AGG 取得唯一值

問題:

問題:

問題:

使用STRING ,您可以從列中檢索逗號分隔的值。但是,結果可能包含重複項。如何僅獲取輸出中的唯一值?

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

查詢:

以下查詢使用STRING_AGG 來獲取唯一值:

解釋:

獨特子查詢中的關鍵字消除結果集中的重複值。 CROSS APPLY 運算子使用 STRING_SPLIT 函數將 bID 欄位拆分為單獨的值。然後 STRING_AGG 函數將這些值連接成一個逗號分隔的字串,ORDER BY 子句確保這些值在連接之前進行排序。

ProjectID   NewField
-------------------------------
2           O95833, Q96NY7-2
4           Q96NY7-2
輸出:最終輸出只顯示每個 ProjectID 的唯一值:

以上是如何在 SQL Server 中使用 STRING_AGG 取得唯一的逗號分隔值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn