求SQL语句厉害的大神!Access sql删除没有重复的数据,有重复的就留下

2025-06-28 05:58:55
推荐回答(3个)
回答1:

1、Delete t1
From TableName t1
Where Not Exists
(Select 1 From
(Select IDNumber,IDCount=Count(1) From TableName
Group By IDNumber Having Count(1)>1) t2
Where t1.IDNumber=t2.IDNumber)

2、如果数据量大,上面的语句效能可能达不到要求 可以把子查询用With as 替换一下,
3、再或者,你把Group By IDnumber Having Count(1)>2 的放到一个表XXX里,把原表Truncate 掉,再把XXX里的数据放回到你的原表;(这个方法不能在数据被使用的时候进行)

回答2:

delete from 表名
where IDNumber in(select IDNumber from 表名 group by IDNumber having count(IDNumber)<=1)

回答3:

delete from tb
where id in (select id From tb Group By id Having Count(1)=1 )