消除STRING_AGG 結果中的重複項
任務是使用SQL Server 中的STRING_AGG 函數擷取唯一值,並確保刪除重複元素.
在提供的範例查詢中,使用了STRING_AGG函數將字串連接到單一逗號分隔的欄位中,並按 ProjectID 分組。但是,產生的 NewField 包含重複值。
要取得唯一的 NewField,我們可以在子查詢中使用 DISTINCT 關鍵字。更新後的查詢為:
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
子查詢首先從原始表中選擇 ProjectID 和 newId.value 的不同值。然後,在外部查詢中使用這些不同的值來執行 STRING_AGG 操作,確保最終的 NewField 結果中不存在重複項。
執行此修改後的查詢將產生僅包含唯一值的所需輸出:
ProjectID | NewField ----------+---------- 2 | O95833, Q96NY7-2 4 | Q96NY7-2
以上是在 SQL Server 中使用 STRING_AGG 時如何消除重複項?的詳細內容。更多資訊請關注PHP中文網其他相關文章!