Deletar registros duplicados com Select
Caros amigos,
Gostaria de saber como deleto registros duplicados numa tabela, por exemplo: Tenho num cadastro de clientes tres registros duplicados, onde o nome do cliente seja: ANTONIO DA SILVA CARVALHO, pois bem, gostaria de deletar dois registros com esse mesmo nome deixando apenas um utilizando uma select.
Grato,
Alcantarus.
Gostaria de saber como deleto registros duplicados numa tabela, por exemplo: Tenho num cadastro de clientes tres registros duplicados, onde o nome do cliente seja: ANTONIO DA SILVA CARVALHO, pois bem, gostaria de deletar dois registros com esse mesmo nome deixando apenas um utilizando uma select.
Grato,
Alcantarus.
Alcantarus
Curtidas 0
Respostas
Aasn
06/09/2006
Caro Alcantarus,
[]´s
AASN
Delete from TABELA1 A Where (Select count(B.NOME) From TABELA1 B Where B.NOME = A.NOME) > 1
[]´s
AASN
GOSTEI 0
Motta
06/09/2006
Creio não ter como fazer via select.
Tem de fazer um programa para isto.
Tem de fazer um programa para isto.
GOSTEI 0
Aasn
06/09/2006
Caros colegas,
Discordo do Motta, o select acima faz uma varredura na tabela e deleta todos os registros com nomes duplicados (deixando apenas um de cada).
Pode testar e ver o resultado!
[]´s
AASN
Creio não ter como fazer via select.
Tem de fazer um programa para isto.
Discordo do Motta, o select acima faz uma varredura na tabela e deleta todos os registros com nomes duplicados (deixando apenas um de cada).
Pode testar e ver o resultado!
[]´s
AASN
GOSTEI 0
Motta
06/09/2006
ok
GOSTEI 0
Motta
06/09/2006
ok
GOSTEI 0
Alcantarus
06/09/2006
Caros amigos, agradeco pela disposicao, porem, nenhum dos codigos abaixo funcionaram.
O que eu gostaria, é que numa Tabela de Recebimentos, estao duplicados os Numeros da Notas, Parcelas, SubParcelas, Valores, etc... duplicaram todos os registros, entao, gostaria de exclui-los, deixando SOMENTE um registro no banco.
Grato de suas atencoes...
Alcantarus.
Delete from Rec A Where (Select count(B.Numnot) From Rec B Where B.Numnot = A.Numnot) > 1 Delete from Rec A Where Numnot (Select count(B.Numnot) From Rec B Where B.Numnot = A.Numnot) > 1 Delete from Rec A Where Numnot in (Select count(B.Numnot) From Rec B Where B.Numnot = A.Numnot > 1 ) Delete from Rec A Where Numnot in (Select count(B.Numnot) From Rec B Where B.Numnot = A.Numnot) > 1
O que eu gostaria, é que numa Tabela de Recebimentos, estao duplicados os Numeros da Notas, Parcelas, SubParcelas, Valores, etc... duplicaram todos os registros, entao, gostaria de exclui-los, deixando SOMENTE um registro no banco.
Grato de suas atencoes...
Alcantarus.
GOSTEI 0