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

Publicado por Juliano Atanazio em 20/03/2010

[ Hits: 9.159 ]

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

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

PostgreSQL com ZEROFILL e AUTO_INCREMENT

PostgreSQL: Concedendo ou revogando privilégios em colunas

Consulta aleatória com PostgreSQL

Leitura recomendada

Exportando dados do PostgreSQL para HTML

PostgreSQL: Concedendo ou revogando privilégios em colunas

Select com extração de dia, mês ou ano no PostgreSQL

Autenticação Squid em PostgreSQL

Instalação e configuração do Postgresql + Pgadmin3 LocalHost no Fedora

  

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
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts