[firebase-br] Excluir Registro duplicado e manter somente um deles

Alexandre Sousa dave.malkavian em gmail.com
Qui Out 8 13:10:19 -03 2009


Só incrementando o post do nosso amigo Robson Carvalho, pode-se utilizar o 
RDB$DB_KEY para fazer a deleção (aqueles que souberem de alguma implicação, 
por favor, me corrijam ;) )

delete from TABELA t
where
  (t.RDB$DB_KEY = (select first 1 t2.RDB$DB_KEY
                                    from TABELA t2
                                    where
                                      (t2.CODIGO = 1)))


[]'s
Alexandre Sousa

----- Original Message ----- 
From: "Robson Carvalho Leite" <robsoncarvalholeite em gmail.com>
To: <lista em firebase.com.br>
Sent: Thursday, October 08, 2009 12:58 PM
Subject: [firebase-br] Excluir Registro duplicado e manter somente um deles


Olha, não testei, pois estou no open solaris e nao tenho o FB
instalado aqui, mas poderia usar a função TOP, pegando o 1º registro
de cada tuplas duplicadas:

Exemplo:

Tabela: TOMADORES
Indice: CODIGO
Campo Duplicado: NOME
__________________________

DELETE FROM TOMADORES
WHERE NOT CODIGO IN (SELECT (SELECT TOP 1 CODIGO FROM TOMADORES WHERE
(NOME = T.NOME))
FROM TOMADORES T
GROUP BY T.TOMADORES)

Explicação: (Fora pra Dentro)
1- Delete todos os registros que NÃO (not) estiver dentro da lista (1º 
Select).
2- 1º Select - Seleciona todos os registros da tabela (agrupando pelo
campo Duplicado (NOME))
3- 2º Select - Pega somente o PRIMEIRO Indice de cada tuplas
duplicadas, (filtrado pelo grupo de tuplas duplicadas informados pelo
1º Select)


Pronto, só isso, simples como 1 + 1 é 0. rsrs
Qualquer dúvida, só retornar... espero ter dado uma ideia para
qualquer um que precisar de algo no mesmo sentido (como eu sempre
preciso).

Desculpa se alguma semantica não esta batendo, mas nao pude testar,
pois estou no Open Solaris e ainda não tive como fazer o FB funcionar
aqui. mas a ídeia é essa.

Ass: Robson Leite - Microcamp Internacional

______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: 
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 





Mais detalhes sobre a lista de discussão lista