在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中文網其他相關文章!