SQL删除逻辑重复记录的方法
SQL删除逻辑重复记录的方法
问题:对于表 TestData : ID, DataID, A,B,C,需要删除DataID重复的记录,仅保留第一条。 ID为Int型主键。
delete * from TestData
where ID not in
(
select Min(ID) from TestData
group by DataID
)
解答:大容量记录删除时,我这样写:
delete *
from TestData
Inner Join
(select [Type]), Min(ID) as MinID from TestData group by [Type]) T
On TestData.[Type])=T.[Type])
Where TestData.ID>T.MinID