lunes, 29 de agosto de 2016

Eliminar Registros duplicados en sql oracle

Borrar registros duplicados según ID:
DELETE FROM NombreTabla
WHERE ID not in (
                                  SELECT MIN(ID)
                                  FROM NombreTabla
                                  GROUP BY NombreColumna1, NombreColumna2
                               );

Borrar registros duplicados SIN ID:
DELETE FROM NombreTabla
WHERE rowid not in (
                     SELECT MIN(rowid)
                     FROM NombreTabla
                     GROUP BY NombreColumna1, NombreColumna2
                    );