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

Robson Carvalho Leite robsoncarvalholeite em gmail.com
Qui Out 8 12:58:33 -03 2009


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




Mais detalhes sobre a lista de discussão lista