Pular para o conteúdo

Função SQL replace: corrigindo inserções equivocadas

Dica publicada em Banco de Dados / Postgres
Juliano Atanazio julianometal
Hits: 10.282 Categoria: Banco de Dados Subcategoria: Postgres
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Função SQL replace: corrigindo inserções equivocadas

Imaginemos uma situação em que uma pessoa encarregada de cadastrar nomes de pessoas em um banco de dados. E que essa pessoa por algum motivo acabava confundindo os sobrenomes "dos Santos" e "da Silva".

No exemplo, o cadastro das pessoas que constam como "da Silva" na verdade teriam o sobrenome "dos Santos". Como corrigir isso? Fazer um UPDATE em cada linha? Há uma maneira simples, rápida e eficiente para isso:

Criação da tabela de exemplo:

CREATE TEMP TABLE tb1(
   nome varchar(25)
);


Inserção dos valores (equivocadamente):

INSERT INTO tb1 VALUES ('Genésio Silva'), ('Estrobaldo da Silva'), ('Aventina Silva'), ('Eloécio da Silva');

Arrumando o erro:

UPDATE tb1 SET nome = replace(nome, 'da Silva', 'dos Santos');

Verificando o resultado:

SELECT * from tb1;
Genésio Silva
Estrobaldo dos Santos
Aventina Silva
Eloécio dos Santos

Como pode se constatar, apenas as ocorrências da string "da Silva" e não "Silva" foram alteradas para o novo valor.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Clonando máquinas na rede pelo UDP Cast (sem Live CD do mesmo)

PostgreSQL: Concedendo ou revogando privilégios em colunas

PostgreSQL com ZEROFILL e AUTO_INCREMENT

Consulta aleatória com PostgreSQL

Eliminando linhas de comentário ou linhas em branco no Linux

SQL - Copiar coluna

Ativando acesso remoto ao PostgreSQL 8 no Fedora

Instalando, configurando e administrando o Postgres

Alterando senha inicial do PostgreSQL [Ubuntu]

Documentação online do PostgreSQL

#1 Comentário enviado por kabalido em 22/03/2010 - 07:50h
Interessante! Sabia disso não. Valeu pela Dica.
Abs.

Contribuir com comentário

Entre na sua conta para comentar.