Autor Tema: Eliminar TODOS los duplicados  (Leído 24072 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado r5afondo

  • Novato
  • *
  • Mensajes: 2
    • Ver Perfil
Eliminar TODOS los duplicados
« en: 01 de Agosto de 2007, 06:21:21 pm »
Hola!

Voy a explicar una duda que me ha surgido, a ver si alguien puede echarme una mano.

Tengo una tabla interna de la que quiero eliminar los registros que tengan repetido un conjunto de campos.

Con la instrucción:

DEJETE ADJACENT DUPLICATES FROM <tabla> COMPARING <campos> ; se eliminan duplicados pero conserva un registro.

Necesitaría que en el momento que hubiese duplicados, me borrara todos los registros...

Alguna idea?

Muchas gracias!  ;)

Desconectado Nuria

  • Usuario Completo
  • ***
  • Mensajes: 90
    • Ver Perfil
Re: Eliminar TODOS los duplicados
« Respuesta #1 en: 01 de Agosto de 2007, 09:50:25 pm »
Hola,

¿Lo has ordenado primero?

SORT <tabla> BY <campo1> <campo2> DESCENDING.
DELETE ADJACENT DUPLICATES FROM <tabla> COMPARING <campo1>.


A modo recordatorio, esta instrucción elimina los registros que hay duplicados, y lo que hace es guardar el primero que encuentra de cada campo que has comparado.

Desconectado r5afondo

  • Novato
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Eliminar TODOS los duplicados
« Respuesta #2 en: 01 de Agosto de 2007, 10:07:22 pm »
Lo que obtengo con el DELETE DUPLICATES es que si, por ejemplo, hay 4 registros duplicados, se borran 3 y conserva uno; pero lo que me interesaría es que se borraran los 4.

He estado haciendo pruebas para hacerlo "a mano" y lo he implementado mediante un LOOP, un DELETE WHERE y tablas auxiliares...y bueno, parece que funciona, pero lo que yo estaba buscando era una solución un poco más "elegante"

Saludos  :)