Enquanto trabalha no Oracle, você pode encontrar duplicatas em alguns registros. Você pode remover linhas duplicadas identificando-as e usando o endereço de linha de alias de RowID correspondente. Antes de começar, crie uma tabela de backup caso precise de uma referência depois que o registro for excluído.
Etapa
Método 1 de 4: Identificando duplicatas
Etapa 1. Identifique duplicatas
Neste exemplo, identificamos a duplicata "Alan". Certifique-se de que os registros a serem excluídos sejam realmente duplicados, digitando o SQL abaixo.
Etapa 2. Identifique-se na coluna intitulada "Nome"
Caso a coluna tenha o título "Nome", você precisa substituir "nome_da_coluna" por Nome.
Etapa 3. Identifique as outras colunas
Se você estiver tentando identificar duplicatas de colunas diferentes, por exemplo, a idade de Alan em vez de seu nome, digite “Idade” no lugar de “nome_da_coluna” e assim por diante.
selecione nome_da_coluna, contagem (nome_da_coluna) do grupo de tabelas por nome_da_coluna tendo contagem (nome_da_coluna)> 1;
Método 2 de 4: Removendo Duplicatas Únicas
Etapa 1. Selecione "nome de nomes"
Depois de "SQL" (abreviação de Linguagem de consulta padrão), digite "selecionar o nome dos nomes".
Etapa 2. Exclua todas as linhas com nomes duplicados
Depois de "SQL", digite "delete from names where name = 'Alan';." Deve-se observar que a capitalização é importante aqui para que esta etapa possa excluir todas as linhas com o nome "Alan". Depois de "SQL", digite "commit"
Etapa 3. Insira as linhas novamente sem duplicatas
Agora que você excluiu todas as linhas e as substituiu por "Alan", preencha novamente inserindo "inserir em valores de nome ('Alan');." Depois de "SQL", digite "commit" para criar uma nova linha.
Etapa 4. Visualize a nova lista
Depois de concluir as etapas acima, você pode verificar se não há mais registros duplicados digitando "selecionar * de nomes".
SQL> selecione o nome dos nomes; NOME ------------------------------ Alan Citra Tomi Alan Baris selecionado. SQL> delete from names where name = 'Alan'; A linha é excluída. SQL> confirma; / Confirmação concluída. SQL> inserir valores de nomes ('Alan'); linha criada. SQL> confirma; Compromisso completo. SQL> selecione * a partir de nomes; NAME ------------------------------ Linhas selecionadas de Alan Citra Tomi.
Método 3 de 4: Removendo várias duplicatas
Etapa 1. Selecione o RowID que deseja excluir
Depois de "SQL", digite "select rowid, name from names;."
Etapa 2. Remova as duplicatas
Depois de "SQL", digite "deletar dos nomes a where rowid> (selecionar min (rowid) from names b where b.name = a.name);" para remover duplicatas.
Etapa 3. Verifique se há duplicatas
Depois de concluir as etapas acima, verifique se há duplicatas digitando "select rowid, name from names;" em seguida, "comprometer".
SQL> selecione rowid, nome de nomes; NOME DO ROWID ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan linhas selecionadas. SQL> deletar dos nomes a where rowid> (selecionar min (rowid) from names b where b.name = a.name); linhas excluídas. SQL> selecione rowid, nome de nomes; NOME DO ROWID ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom linhas selecionadas. SQL> confirma; Compromisso completo.
Método 4 de 4: Excluindo Linhas por Colunas
Etapa 1. Selecione a linha
Depois de "SQL", digite "select * from names;" para poder ver a linha.
Etapa 2. Remova as linhas duplicadas identificando suas colunas
Depois de "SQL '", digite "delete from names a where rowid> (selecione min (rowid) from names b where b.name = a.name e b.age = a.age);" para remover registros duplicados.
Etapa 3. Verifique se há duplicatas
Depois de concluir as etapas acima, digite "selecionar * dos nomes;" em seguida, "confirme" para ver se as duplicatas foram realmente removidas.
SQL> selecione * a partir de nomes; NOME IDADE ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 Alan 50 linhas selecionadas. SQL> excluir dos nomes a where rowid> (selecionar min (rowid) dos nomes b onde b.name = a.name e b.age = a.age); linha excluída. SQL> selecione * a partir de nomes; NOME IDADE ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 linhas selecionadas. SQL> confirma; Compromisso completo.
Aviso
-
Crie uma tabela duplicada em seu login para que possa ser usada como uma referência de conteúdo quando nenhum dado tiver sido excluído (caso você tenha alguma dúvida).
SQL> crie a tabela alan.names_backup como select * from names; Tabela criada.