Como substituir parte de um texto dentro de uma coluna no SQL?
A função REPLACE() no SQL é utilizada para substituir parte de um texto dentro de uma coluna. Essa função é útil para correções em massa e padronização de dados.
Exemplo básico de REPLACE
Se quisermos substituir todas as ocorrências da palavra "Rua" por "Av." na coluna endereco:
SELECT REPLACE(endereco, 'Rua', 'Av.') AS endereco_corrigido FROM clientes;
Isso altera todas as ocorrências de "Rua" para "Av." nos registros exibidos.
Atualizando registros com REPLACE
Podemos aplicar REPLACE() em um UPDATE para modificar permanentemente os dados na tabela:
UPDATE clientes SET endereco = REPLACE(endereco, 'Rua', 'Avenida') WHERE endereco LIKE 'Rua%';
Essa consulta altera os registros da tabela clientes, substituindo "Rua" por "Avenida" em endereços que comecem com "Rua".
Substituindo trechos dentro de identificadores
Se tivermos um conjunto de códigos de produto formatados como "PRD-12345" e quisermos remover o prefixo "PRD-":
SELECT REPLACE(codigo, 'PRD-', '') AS codigo_limpo FROM produtos;
Isso retorna apenas a numeração do código, sem o prefixo.
Cuidados ao usar REPLACE
- O REPLACE diferencia maiúsculas e minúsculas, então verifique o padrão dos dados antes de aplicá-lo.
- Ele substitui todas as ocorrências encontradas, então revise antes de fazer um
UPDATEem massa. - Se precisar de substituições mais avançadas, considere o uso de expressões regulares em bancos que suportam funções como
REGEXP_REPLACE()no MySQL e PostgreSQL.
Quando usar REPLACE() para limpar e corrigir dados no SQL?
A substituição de partes de texto no SQL é uma técnica útil para manter a integridade e padronização dos dados em bancos de dados grandes. Em cadastros de clientes, por exemplo, pode ser necessário corrigir abreviações incorretas ou substituir padrões de formatação. O uso do REPLACE() facilita essas alterações sem necessidade de exportação para manipulação manual. No entanto, quando se trata de substituições complexas, expressões regulares podem ser mais eficientes para detectar e corrigir padrões inconsistentes.
Algumas aplicações:
- Correção de erros de digitação em nomes e endereços
- Remoção ou substituição de prefixos e sufixos em identificadores
- Padronização de formatação em registros de texto
- Alteração de nomenclaturas obsoletas em sistemas legados
- Substituição de caracteres especiais em importação de dados
Dicas para quem está começando
- Use
REPLACE(coluna, 'antigo', 'novo')para substituir textos específicos - Antes de executar um
UPDATE, sempre teste oSELECTpara verificar o impacto - Se precisar de substituições mais avançadas, pesquise sobre
REGEXP_REPLACE() - Lembre-se de que
REPLACE()é case-sensitive, então atente-se ao padrão dos textos - Para grandes volumes de dados, otimizar índices pode melhorar a performance das substituições
Carla Nunes
Especialista em bancos de dados e otimização de consultas SQL.
Mais sobre o autor