我在多个SQL Server表中有重复的行,但ID不同。是否有可以运行的查询来删除这些行?
答案 0 :(得分:2)
因为你的回答并不具体,所以我可以给你一个通用答案。
您可以使用SQL Server中的ROW_NUMBER功能。例如:
WITH CTE (COl1,Col2, DuplicateCount)
AS
(
SELECT COl1,Col2,
ROW_NUMBER() OVER(PARTITION BY COl1,Col2 ORDER BY Col1) AS DuplicateCount
FROM DuplicateRcordTable
)
DELETE
FROM CTE
WHERE DuplicateCount > 1
GO
请查看此link以获取更多信息。
答案 1 :(得分:0)
以下是一个完整的例子:
create table #test (
id int,
value int
)
insert into #test values (1,2), (2,2), (3,1), (4,2)
delete #test
where id not in ( select min(id) from #test group by value)
drop table #test
除了ids
之外,它将删除所有value
min(id)
的{{1}}。
您只需要更改group by
列,即可考虑重复行所需的所有内容。