LISTANDO REGISTROS DE UMA COLUNA E SUBSTITUINDO UM TRECHO DELA POR OUTRA

1. LISTANDO REGISTROS DE UMA COLUNA E SUBSTITUINDO UM TRECHO DELA POR OUTRA

Diogo
didism2

(usa Debian)

Enviado em 27/10/2016 - 09:34h

Olá Senhores, tudo bem com vocês ?

Bom ,sou leigo em SQL e estou com um problema que é o seguinte:

Estou usando o PostGreSQL

Tennho uma tabela chamada OfMessageArchive , contendo a coluna FROMJID

Nessa tabela tenho diversos registros que estão como joao@hotmail.com , maria@bol.com.br , marcos@gmail.com e por aí vai.

Acredito que uns 15 dominios de e-mails diferentes. Não sei quais são todos eles.

Tendo essas informações preciso alterar por exemplo tudo que esteja como @hotmail.com para @empresa.com.br , tudo o que esteja como @bol.com.br , para @empresa.com.br e por aí vai , deixando tudo como joao@empresa.com.br , maria@empresa.com.br , marcos@empresa.com.br e por aí vai.

Preciso então de 2 comandos , e essas são as minhas dúvidas:

1 - Qual comando eu comando eu consigo listar todos os registros nessa coluna que estão com @ alguma coisa , sem ter que repeti-los ( estamos falando de quase 45.000 registros) ?

Exemplo:

Após executar o comando ele mostra que na coluna FROMJID tem os dominios:
@bol.com.br
@hotmail.com
@gmail.com

??????????

2 - Eu sabendo quais são os dominios de e-mail que estão cadastrados na coluna FROMJID da tabela OfMessageArchive , qual o comando eu uso para substiruir todos esses dominios @bol.com.br , @gmail.com e por aí vai , por @empresa.com.br , deixando por exemplo joao@bol.com.br para joao@empresa.com.br ?

Muito obrigado galera



  


2. Re: LISTANDO REGISTROS DE UMA COLUNA E SUBSTITUINDO UM TRECHO DELA POR OUTRA

Diogo
didism2

(usa Debian)

Enviado em 03/11/2016 - 12:21h

Alguém no VIVA O LINUX sabe fazer isso no banco de dados galera ?


3. Re: LISTANDO REGISTROS DE UMA COLUNA E SUBSTITUINDO UM TRECHO DELA POR OUTRA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 03/11/2016 - 13:15h

didism2 escreveu:

Olá Senhores, tudo bem com vocês ?

Bom ,sou leigo em SQL e estou com um problema que é o seguinte:

Estou usando o PostGreSQL

Tenho uma tabela chamada OfMessageArchive , contendo a coluna FROMJID

Nessa tabela tenho diversos registros que estão como joao@hotmail.com , maria@bol.com.br , marcos@gmail.com e por aí vai.

Acredito que uns 15 dominios de e-mails diferentes. Não sei quais são todos eles.

Tendo essas informações preciso alterar por exemplo tudo que esteja como @hotmail.com para @empresa.com.br , tudo o que esteja como @bol.com.br , para @empresa.com.br e por aí vai , deixando tudo como joao@empresa.com.br , maria@empresa.com.br , marcos@empresa.com.br e por aí vai.

Preciso então de 2 comandos , e essas são as minhas dúvidas:

1 - Qual comando eu comando eu consigo listar todos os registros nessa coluna que estão com @ alguma coisa , sem ter que repeti-los ( estamos falando de quase 45.000 registros) ?

Exemplo:

Após executar o comando ele mostra que na coluna FROMJID tem os dominios:
@bol.com.br
@hotmail.com
@gmail.com

??????????

2 - Eu sabendo quais são os dominios de e-mail que estão cadastrados na coluna FROMJID da tabela OfMessageArchive , qual o comando eu uso para substiruir todos esses dominios @bol.com.br , @gmail.com e por aí vai , por @empresa.com.br , deixando por exemplo joao@bol.com.br para joao@empresa.com.br ?

Muito obrigado galera


========================================
Boa tarde didism2.
Teria como enviar algumas linha do arquivo (OfMessageArchive)?
A ideia e "casar" os DOMÍNIOS, e alterar com o sed, somente 01 comando . . .

No aguardo.
Marcelo Oliver



4. Re: LISTANDO REGISTROS DE UMA COLUNA E SUBSTITUINDO UM TRECHO DELA POR OUTRA

Ricardo Fabiano Silva
madrugada

(usa Gentoo)

Enviado em 03/11/2016 - 16:43h

Veja este select e vê se o resultado supre o que você precisa:
select
replace(FROMJID,'@hotmail.com','@empresa.com.br') as FROMJID_alterado
FROMJID as FROMJID
from OfMessageArchive;



5. Re: LISTANDO REGISTROS DE UMA COLUNA E SUBSTITUINDO UM TRECHO DELA POR OUTRA

Ricardo Fabiano Silva
madrugada

(usa Gentoo)

Enviado em 04/11/2016 - 08:02h

Observação; o comando acima é só o select pra saber se é isso mesmo que você quer. Pra alterar os registros será necessário um "update" nos registros com o "replace" de forma semelhante.


6. Alteração

Helio Alcântara
fhalcantara

(usa Outra)

Enviado em 18/11/2016 - 15:20h

Olá,

Com este select você poderá ver como vai ficar o resultado:

select fromjid AS VALOR_ORIGINAL, replace(FROMJID,substr(fromjid, position('@' in fromjid), length(fromjid) - position('@' in fromjid)+1),'@empresa.com.br') AS VALOR_ALTERADO
from ofmessagearchive;

Este update faz a atualização na tabela em todas as linhas:

update ofmessagearchive
set fromjid = replace(FROMJID,substr(fromjid, position('@' in fromjid), length(fromjid) - position('@' in fromjid)+1),'@empresa.com.br')
where fromjid = fromjid;

Hélio Alcântara






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts