4 maneiras de excluir registros duplicados no Oracle

Índice:

4 maneiras de excluir registros duplicados no Oracle
4 maneiras de excluir registros duplicados no Oracle

Vídeo: 4 maneiras de excluir registros duplicados no Oracle

Vídeo: 4 maneiras de excluir registros duplicados no Oracle
Vídeo: Como obter o Microsoft Office GRÁTIS e sem Pirataria: Word, Excel, PowerPoint [2023] 2024, Maio
Anonim

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

Excluir registros duplicados no Oracle Etapa 1
Excluir registros duplicados no Oracle Etapa 1

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.

Excluir registros duplicados no Oracle Etapa 2
Excluir registros duplicados no Oracle Etapa 2

Etapa 2. Identifique-se na coluna intitulada "Nome"

Caso a coluna tenha o título "Nome", você precisa substituir "nome_da_coluna" por Nome.

Excluir registros duplicados no Oracle Etapa 3
Excluir registros duplicados no Oracle Etapa 3

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

Excluir registros duplicados no Oracle Etapa 4
Excluir registros duplicados no Oracle Etapa 4

Etapa 1. Selecione "nome de nomes"

Depois de "SQL" (abreviação de Linguagem de consulta padrão), digite "selecionar o nome dos nomes".

Excluir registros duplicados no Oracle Etapa 5
Excluir registros duplicados no Oracle Etapa 5

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"

Excluir registros duplicados no Oracle Etapa 6
Excluir registros duplicados no Oracle Etapa 6

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.

Excluir registros duplicados no Oracle Etapa 7
Excluir registros duplicados no Oracle Etapa 7

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

Excluir registros duplicados no Oracle Etapa 8
Excluir registros duplicados no Oracle Etapa 8

Etapa 1. Selecione o RowID que deseja excluir

Depois de "SQL", digite "select rowid, name from names;."

Excluir registros duplicados no Oracle Etapa 9
Excluir registros duplicados no Oracle Etapa 9

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.

Excluir registros duplicados no Oracle Etapa 10
Excluir registros duplicados no Oracle Etapa 10

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

Excluir registros duplicados no Oracle Etapa 11
Excluir registros duplicados no Oracle Etapa 11

Etapa 1. Selecione a linha

Depois de "SQL", digite "select * from names;" para poder ver a linha.

Excluir registros duplicados no Oracle Etapa 12
Excluir registros duplicados no Oracle Etapa 12

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.

Excluir registros duplicados no Oracle Etapa 13
Excluir registros duplicados no Oracle Etapa 13

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.

Recomendado: