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