删除重复的行

时间:2009-06-29 08:43:52

标签: sql-server

任何人都知道如何通过从下面的脚本中编写新方法来删除重复行以提高性能。

DELETE lt1 FROM #listingsTemp lt1, #listingsTemp lt2
    WHERE lt1.code = lt2.code and lt1.classification_id > lt2.classification_id and (lt1.fap < lt2.fap or lt1.fap = lt2.fap)

4 个答案:

答案 0 :(得分:3)

Delete Duplicate Rows in a SQL Table

delete table_a
where rowid not in 
(select min(rowid) from table_a 
group by column1, column2);

答案 1 :(得分:1)

1 - 为您的表创建一个标识列(ID)(t1) 2 - 根据您的条件在您的桌子上进行分组,并获取重复记录的ID。 3 - 现在,只需从t1删除ID IN ID ID设置的记录。

答案 2 :(得分:0)

查看BINARY_CHECKSUM ....你可以在创建临时表时使用它来更快地确定数据是否相同....例如在两个临时表中创建一个新字段存储binary_checksum value ...然后只删除那些字段相等的地方

答案 3 :(得分:0)

odiseh答案似乎是有效的(+1),但如果由于某种原因你不能改变表的结构(因为你没有使用它的应用程序的代码或其他东西)你可以写每晚运行的作业并删除重复项(使用Moayad Mardini代码)。