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

Publicado por Juliano Atanazio em 20/03/2010

[ Hits: 10.125 ]

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

Consulta aleatória com PostgreSQL

PostgreSQL com ZEROFILL e AUTO_INCREMENT

PostgreSQL: Concedendo ou revogando privilégios em colunas

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

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

Leitura recomendada

PostgreSQL: Concedendo ou revogando privilégios em colunas

Criando usuários no PostgreSQL

Consultas sem preocupação com maiúsculas ou minúsculas no PostgreSQL

Documentação online do PostgreSQL

Instalar a última versão do PostgreSQL no Lunix mantendo atualizado

  

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