一尘不染

在Oracle中从表中删除重复的行

sql

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

如何删除所有重复的行并仅保留其中之一?


阅读 114

收藏
2021-05-05

共1个答案

一尘不染

使用rowid伪列。

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

其中column1column2column3组成每个记录的标识键。您可能会列出所有列。

2021-05-05