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

Publicado por Juliano Atanazio em 20/03/2010

[ Hits: 9.468 ]

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

PostgreSQL com ZEROFILL e AUTO_INCREMENT

Consulta aleatória com PostgreSQL

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

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

Leitura recomendada

Autenticação Squid em PostgreSQL

Tuning PostgreSQL 9.1 com pgtune - Debian e derivados

PostgreSQL 9.1 64 bits - Instalação no Debian Squeeze

Instalando a linguagem procedural PL/PHP no PostgreSQL

Acessando dois databases no mesmo SELECT (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