Excluir usando delete deixando um reg de cada.
Galera, tenho um banco de dados com algumas duplicidades.
Preciso excluir as duplicidades e deixar apenas uma registro de cada. Tem como ?
Exemplo
Codigo Nome
001 Maria
001 Maria
001 Maria
002 Jose
002 Jose
002 Jose
Preciso deletar todos os duplicados deixando a estrutura assim:
Codigo Nome
001 Maria
002 Jose
ou seja, um de cada.
Preciso excluir as duplicidades e deixar apenas uma registro de cada. Tem como ?
Exemplo
Codigo Nome
001 Maria
001 Maria
001 Maria
002 Jose
002 Jose
002 Jose
Preciso deletar todos os duplicados deixando a estrutura assim:
Codigo Nome
001 Maria
002 Jose
ou seja, um de cada.
Adriano Santos
Curtidas 0
Respostas
Aroldo Zanela
12/01/2004
Colega,
Minha sugestão é efetuar um select com Group By e exportar para uma nova tabela. Não tenho muito conhecimento de IB/FB, mas acho que o uso de SP com um cursor para fazer fetch e verificar se o registro atual é igual ao anterior e ir removendo, ou em último caso, pode ser feito com uma linguagem de programação.
Minha sugestão é efetuar um select com Group By e exportar para uma nova tabela. Não tenho muito conhecimento de IB/FB, mas acho que o uso de SP com um cursor para fazer fetch e verificar se o registro atual é igual ao anterior e ir removendo, ou em último caso, pode ser feito com uma linguagem de programação.
GOSTEI 0
Afarias
12/01/2004
Uma solução seria::
1- crie um novo campo (temporário) na tabela::
alter table nome_sua_tabela add chave integer;
2 - crie um generator (temporário)::
create generator gen_chave;
3 - preencha o campo ´chave´ com os valores do generator::
update nome_sua_tabela set chave = gen_id(gen_chave, 1);
4 - use o campo ´chave´ no WHERE dos seus deletes, ex::
delete from nome_sua_tabela a
where a.chave <> (select min(chave) from nome_sua_tabela
where codigo = a.codigo);
T+
1- crie um novo campo (temporário) na tabela::
alter table nome_sua_tabela add chave integer;
2 - crie um generator (temporário)::
create generator gen_chave;
3 - preencha o campo ´chave´ com os valores do generator::
update nome_sua_tabela set chave = gen_id(gen_chave, 1);
4 - use o campo ´chave´ no WHERE dos seus deletes, ex::
delete from nome_sua_tabela a
where a.chave <> (select min(chave) from nome_sua_tabela
where codigo = a.codigo);
T+
GOSTEI 0
Adriano Santos
12/01/2004
valeu deu certo.
GOSTEI 0