我有一张电话记录表:
ID int (Primary Key)
company varchar
dbaname varchar
coaddress varchar
cocity varchar
costate varchar
cozip varchar
phonenum varchar
我想要完成的是删除所有重复的电话号码(phonenum字段),但保留一次出现。
在进行重复检查时,我发现表格中有超过41000个重复的电话号码(总共约141000个)。
我将如何根据电话号码进行此操作?
答案 0 :(得分:1)
假设您只想保留最新记录:
DELETE yourTable
FROM yourTable T
LEFT JOIN
( SELECT MAX(ID) [ID]
FROM yourTable
GROUP BY Phonenum
) MaxT
ON MaxT.ID = T.ID
WHERE MaxT.ID IS NULL
我肯定会将您要删除的内容存档到另一个表格中,因为无法保证您在未经手动检查或向Delete语句添加其他条件的情况下删除了正确的记录。