【发布时间】:2021-03-31 08:27:30
【问题描述】:
我有一个定期添加重复值的表。一个简单的解决方法是添加一个额外的列让我检查哪些有重复项并相应地删除。我的子查询 Select 语句独立工作,但当我将其作为更新语句的一部分时却不行。我正在使用 SSMS v18.7.1 并使用最新的 SQL DB 引擎(我相信 2019 Express)。Sample Data done with a Group By Query 我知道 Update 和 Group By 并不能很好地混合,因此我认为我可以使用子查询来执行请求行动。理想情况下,我还想删除这些重复项,但还有其他变量,例如 ApptDate & ActualDelivery Columns;但是我唯一的要求是在适当的时候将 Dupchecks 设置为 Yes,然后我将在随后处理删除的逻辑。
Update a
Set Dupcheck = 'Yes'
from [Local DB].[dbo].[Test] a
where (
Select
ID,
count(*) as Count
From [Local DB].[dbo].[Test]
group by UID
having count(*) > 1)
【问题讨论】:
-
请提供样本数据、所需结果以及您正在使用的数据库的标签。
-
“简单的解决方法”是添加一个唯一约束,因此重复项甚至不会进入表中。
-
添加了样本数据和当前使用的版本
标签: sql duplicates sql-update subquery