首页 > 数据库 > mysql教程 > 在 SQL Server 中使用 STRING_AGG 时如何消除重复项?

在 SQL Server 中使用 STRING_AGG 时如何消除重复项?

Linda Hamilton
发布: 2025-01-04 07:51:35
原创
615 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板