Я обычно использую Oracle Analytic , функцию ROW_NUMBER () .
Допустим, вы хотите проверить наличие дубликатов в отношении уникального индекса или первичного ключа, построенного на столбцах (c1
, c2
, c3
).
Затем вы пойдете этим путем, получив ROWID
s строк, где число строк, принесенных ROW_NUMBER()
, равно >1
:
Select * From Table_With_Duplicates
Where Rowid In
(Select Rowid
From (Select Rowid,
ROW_NUMBER() Over (
Partition By c1 || c2 || c3
Order By c1 || c2 || c3
) nbLines
From Table_With_Duplicates) t2
Where nbLines > 1)