Tim*_*ter 4 sql t-sql sql-server sql-server-2005 duplicates
我已经找到了很多关于如何找到重复项的答案,包括PK列或没有关注它,因为:
如果您有一个名为T1的表,并且列是c1,c2和c3,则此查询将显示重复值.
SELECT C1, C2, C3, count(*)as DupCount
from T1
GROUP BY C1, C2, C3
HAVING COUNT(*) > 1
Run Code Online (Sandbox Code Playgroud)
但更常见的要求是获得具有相等c1,c2,c3值的所有重复项的ID.
所以我需要关注什么不起作用,因为必须聚合id:
SELECT ID
from T1
GROUP BY C1, C2, C3
HAVING COUNT(*) <> 1
Run Code Online (Sandbox Code Playgroud)
(所有重复项的ID必须不同,但列必须相等)
编辑:
谢谢你们.我总是惊讶于人们在Stackoverflow上给出了极好的答案!
这里有很多版本,但我想我想出了一个新版本.
select *
from @T as T1
where exists (select *
from @T as T2
where
T1.ID <> T2.ID and
T1.C1 = T2.C1 and
T1.C2 = T2.C2 and
T1.C3 = T2.C3)
Run Code Online (Sandbox Code Playgroud)