borrar un registro repetido

JUAN RUALES
28 de Enero del 2005
Como puedo borrar un registro repetido, las dos filas contienen la misma informacion pero debo borrar una de ellas.

Rodolfo Reyes
28 de Enero del 2005
En oracle, tados las tablas tiene unos campos que podriamos decir que estan ocultos.

Estos campos son:

rowmun
-------------
Este campo es un simple contador de registros el cual se calcula al hacer un query. Por ejemplo si tienes una tabla que tiens los campos a y b y tiens 3 registros al hacer el siguiente query:

select rownum,a,b
from tabla
/

rownum a b
-----------------------------
1 info info
2 info info
3 info info

Te saldra la información de los campos y la primera columna es un simple contador de registros.

rowid
---------------
Este campo te devuelve un numero el cual es la posición fiisica en donde esta almacenada la información del registro.

Creo que lo mejor es que utilices este utlimo campo, y que borres el que tiene el valor de rowid mas alto(o el mas bajo, esto ya es decición tuya).





Adrian
28 de Enero del 2005
Esta consulta borra las filas duplicadas de una tabla:

delete from tabla a where rowid > (
select min(rowid) from tabla b
where a.campo1 = b.campo1
and a.campo2 = b.campo2
and a.campo3 = b.campo3)

En este ejemplo la tabla tiene tres campos, tendrás que añadir todos los campos de la tabla para que te funcione.

Saludos