首頁 > 資料庫 > mysql教程 > 在 SQL Server 中使用 STRING_AGG 時如何消除重複項?

在 SQL Server 中使用 STRING_AGG 時如何消除重複項?

Linda Hamilton
發布: 2025-01-04 07:51:35
原創
605 人瀏覽過

How to Eliminate Duplicates When Using STRING_AGG in SQL Server?

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板