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

Publicado por Juliano Atanazio em 20/03/2010

[ Hits: 9.036 ]

Blog: http://juliano777.wordpress.com

 


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.

Outras dicas deste autor

PostgreSQL: Concedendo ou revogando privilégios em colunas

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

Consulta aleatória com PostgreSQL

PostgreSQL com ZEROFILL e AUTO_INCREMENT

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

Leitura recomendada

Exportando dados do PostgreSQL para HTML

Criando domínio com função de validação no PostgreSQL

Como recuperar senha do usuário Postgres

Instalação e configuração do PostgreSQL no Slackware

Script Reindex PostgreSQL com envio de email de notificação

  

Comentários
[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