发布日期:2018-03-26
如何删除重复的行?+ 查看更多
如何删除重复的行?
+ 查看更多
发布日期:2018-02-24 16:59
分类:SQL
浏览次数:106
从比较大的表格(300000行以上)中删除重复行的最佳方式是什么呢?
当然,由于行的ID标识字段的存在,行不会轻易地重复。
当然,由于行的ID标识字段的存在,行不会轻易地重复。
MyTable ----------- RowID int not null identity(1,1) primary key, Col1 varchar(20) not null, Col2 varchar(2048) not null, Col3 tinyint not null
回答
假设表格中没有空的内容,你通过特殊的列进行分组,选择最小(或最大)的行的ld作为保留行。然后,只需要删除没有id的行的所有内容。
DELETE FROM MyTable LEFT OUTER JOIN ( SELECT MIN(RowId) as RowId, Col1, Col2, Col3 FROM MyTable GROUP BY Col1, Col2, Col3 ) as KeepRows ON MyTable.RowId = KeepRows.RowId WHERE KeepRows.RowId IS NULL
如果你有一个全局唯一标识符而不是一个整数,你可以用
CONVERT(uniqueidentifier, MIN(CONVERT(char(36), MyGuidColumn)))
代替
MIN(RowId)