我正在 Oracle 中测试某些内容,并使用一些示例数据填充表,但在此过程中我不小心加载了重复记录,因此现在我无法使用某些列创建主键。
如何删除所有重复行并只保留其中一个?
最佳答案
使用rowid
伪列。
DELETE FROM your_table
WHERE rowid not in
(SELECT MIN(rowid)
FROM your_table
GROUP BY column1, column2, column3);
其中,column1
、column2
和 column3
构成每条记录的标识键。您可以列出所有列。
关于sql - Oracle中删除表中的重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/529098/