











Remover dados duplicados no oracle
Contente
Se você trabalha na Oracle, alguns de seus dados podem aparecer várias vezes. Você pode remover essas duplicatas identificando-as e usando seu endereço de linha. Antes de começar, faça uma cópia da tabela caso precise consultá-la após excluir os dados.
Degraus
Método 1 de 4: detectar duplicatas

1. Identifique a duplicata. Nesse caso, identifique a duplicata da amostra, `Alan`. Certifique-se de que os registros que você está tentando excluir são realmente duplicados digitando o comando SQL abaixo.

2. Pesquisar em uma coluna `Nomes`. No caso de uma coluna `Nomes`, preencha-a para `nome_coluna`.

3. Pesquisar em outras colunas. Se você tentar encontrar duplicatas em outra coluna, diga a idade de Alan em vez de seu nome, você pode colocar `Age` antes de `column_name`, etc.
selecione column_name, count(column_name) do grupo de tabelas por column_name tendo contagem (column_name) > 1;
Método 2 de 4: Excluir uma única duplicata

1. Selecione `nomes de nomes`. Depois de `SQL` (Linguagem de Consulta Padrão) digite `selecione o nome dos nomes`.

2. Excluir todas as linhas com o nome duplicado. Depois de `SQL` digite `delete from names where name=`Alan`;`. Observe que a capitalização é importante aqui, então isso removerá todas as linhas chamadas `Alan`. Digite `commit` depois de `SQL`.

3. Digite a linha novamente sem uma duplicata. Agora que você excluiu todas as linhas com o nome de exemplo `Alan`, você pode colocar uma de volta digitando `insert into name values (`Alan`);.` Após `SQL` digite `commit` para criar a nova linha.

4. Confira sua nova lista. Depois de concluir as etapas acima, você pode verificar se não possui dados duplicados com o comando `select *from names`.
SQL > selecione o nome dos nomes; NOME ----------------------------- Alan Carrie Tom Alan linhas selecionadas. SQL > delete de nomes onde name=`Alan`; linhas excluídas. SQL > comprometer-se; Confirmação concluída. SQL > inserir nos nomes valores(`Alan`); linha criada. SQL > comprometer-se; Confirmação concluída. SQL > selecione *de nomes; NOME ----------------------------- Alan Carrie Tom linhas selecionadas.
Método 3 de 4: remover várias duplicatas

1. Selecione o endereço da linha (ID da linha) que você deseja excluir. Depois de `SQL` digite `select rowid, name from names;`.

2. Excluir a duplicata. Depois de `SQL` digite `delete from names a where rowid > (selecione min(rowid) dos nomes b onde b.nome=a.nome);` para remover duplicatas de dados.

3. Verifique se há duplicatas. Depois de concluir o procedimento acima, verifique se você ainda tem dados duplicados digitando `select rowid, name from names;` e depois `comprometer`.
SQL > selecione rowid, nome de nomes; ROWIDNAME ------------------ ----------------------------- AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan linhas selecionadas. SQL > delete from names a where rowid > (selecione min(rowid) dos nomes b onde b.nome=a.nome ); linhas excluídas. SQL > selecione rowid, nome de nomes; ROWIDNAME ------------------ ----------------------------- AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom linhas selecionadas. SQL > comprometer-se; Confirmação concluída.
Método 4 de 4: Excluir Linhas de Colunas

1. Selecione as linhas. Depois de `SQL` digite `selecione *de nomes;` para ver as linhas escolhidas.

2. Remova linhas duplicadas identificando sua coluna. Depois de `SQL` digite `delete from names a where rowid > (selecione min(rowid) dos nomes b onde b.nome=a.nome e b.idade=a.era);` para remover os dados duplicados.

3. Verifique se há duplicatas. Depois de concluir as etapas acima, digite `select *from names;` e depois `commit` para verificar se você removeu com sucesso todos os dados duplicados.
SQL > selecione *de nomes; NOME ---------------------- ---------- Alan50 Carrie51 Tom52 Alan50 linhas selecionadas. SQL > delete from names a where rowid > (selecione min(rowid) dos nomes b onde b.nome=a.nome e b.idade=a.era ); linha excluída. SQL > selecione *de nomes; NOME ---------------------- ---------- Alan50 Carrie51 Tom52 linhas selecionadas. SQL > comprometer-se; Confirmação concluída.
Avisos
- Faça um backup da tabela em seu próprio login que você pode usar para mostrar como estava a situação antes da exclusão (caso sejam feitas perguntas).
SQL > criar mesa alan.names_backup as select *from names; Tabela criada.
Artigos sobre o tópico "Remover dados duplicados no oracle"
Оцените, пожалуйста статью
Similar
Popular