borrar duplicados

13/09/2005 - 18:44 por anonimo | Informe spam
una pregunta? en una tabla tengo registros que por un campo se que son
duplicados, como puedo hacer para borrar por sentencia estos registros
duplicados pero quedandome con uno de los registros.

esto es lo que tengo:
campo1 campo2
x 1
d 5
e 3
x 1
x 1
d 5

quisiera que me quede:
campo1 campo2
x 1
d 5
e 3

gracias.
 

Leer las respuestas

#1 Alejandro Mesa
13/09/2005 - 18:47 | Informe spam
Cuando se hace este tipo de preguntas, es recomendable postear la estructura
de la tabla, incluyendo restricciones e indices.

No se si tu tabla tiene una clave primaria, por lo que te aconsejo que armes
una provisional y que la uses como referencia para este proceso.

alter tabla t1
add c1 int not null identity(1, 1)

create unique nonclustered ix_u_nc_t1_c1 on t1(c1 asc)

delete t1
where exists(
select *
from t1 as a
where a.campo1 = t1.campo1 and a.campo2 = t1.campo2 and a.c1 < t1.c1
)

alter table t1
drop column c1
go

Recuerda hacer un backup full de la bd antes de hacer esto en produccion.

INF: How to Remove Duplicate Rows From a Table
http://support.microsoft.com/defaul...-us;139444


AMB

"anonimo" wrote:

una pregunta? en una tabla tengo registros que por un campo se que son
duplicados, como puedo hacer para borrar por sentencia estos registros
duplicados pero quedandome con uno de los registros.

esto es lo que tengo:
campo1 campo2
x 1
d 5
e 3
x 1
x 1
d 5

quisiera que me quede:
campo1 campo2
x 1
d 5
e 3

gracias.

Preguntas similares