Ir para conteúdo
Fórum Script Brasil
  • 0

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


didism2

Pergunta

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

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

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) ? 
R. você deve usar distinct on 'field' para evitar que duplique, depois você faz um substring com expressao regular para trazer tudo q vier depois do '@'.

select
distinct on (substring(email,'[^@]*$'))
substring(email,'[^@]*$')
from
pessoa

 

Editado por Dr. House
Link para o comentário
Compartilhar em outros sites

  • 0

Para listar os domínios você pode fazer o seguinte:

SELECT DISTINCT substring("FROMJID" from position('@' in "FROMJID")) FROM "OfMessageArchive";

E para substituir todos por "empresa.com.br" você pode fazer:

UPDATE "OfMessageArchive" SET "FROMJID"=concat(substring("FROMJID" for position('@' in "FROMJID")),'empresa.com.br');

Certo?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...