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

Publicado por Juliano Atanazio em 20/03/2010

[ Hits: 9.643 ]

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

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

Consulta aleatória com PostgreSQL

PostgreSQL: Concedendo ou revogando privilégios em colunas

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

PostgreSQL com ZEROFILL e AUTO_INCREMENT

Leitura recomendada

Como recuperar senha do usuário Postgres

Exportando dados do PostgreSQL para HTML

Mudando encoding do Postgres 8.4 para LATIN1

Instalação e configuração do PostgreSQL e phpPgAdmin no Debian

Novo site sobre PostgreSQL

  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts