从Oracle中删除表中的重复行

我在Oracle中测试一些东西,并用一些示例数据填充表,但在此过程中我不小心加载了重复记录,因此现在我无法使用某些列创建主键。

如何删除所有重复的行,并且只留下其中一个?

使用rowid伪列。

DELETE FROM your_table
WHERE rowid not in
(SELECT MIN(rowid)
FROM your_table
GROUP BY column1, column2, column3);

其中column1,column2和column3组成每个记录的标识键。您可以列出所有列。

http://stackoverflow.com/questions/529098/removing-duplicate-rows-from-table-in-oracle

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:从Oracle中删除表中的重复行