Postgres - Exclusão de uma parte do campo, com base em outro campo.

18/05/2020

5

Pessoal, boa tarde!

Sabem como posso excluir uma parte de um campo com base em outro campo?

Há um campo de endereço que contem por exemplo "Rua José Bonifácio" e outro campo que possui apenas o logradouro "Rua".

Gostaria que o campo endereço ficasse apenas "José Bonifácio". Ou seja, retirando todos os logradouros do campo endereço, com base no conteúdo do campo Logradouro.

Alguém possui alguma sugestão?

Abraços

Bruno Barbosa
Responder

Posts

20/05/2020

Jair N.

Bom Dia, referente ao que está no enunciado, o problema é que não existe uma função padrão para isto.
Opção, criar uma função de varredura da tabela, no seu caso de endereços temos:
1º A opção que tudo começa no primeiro caracter do registro;
Ex: Rua ou R., lembrando de outros como Avenida -Av. (maiúsculas, minúsculas, com ponto espaço etc.)
Neste caso se localizar com a função REPLACE() cada uma a ser pesquisada faça uma lista;
Exemplo: TRIM(REPLACE("Rua José Bonifácio" ,"Rua ", ""))

2º Removendo com cuidado pois outras palavras Ex: Rua Ruanda ou com final como Construa, etc.

3º Veja também a questão de números, e caracteres que não fazem parte do nome do logradouro.

4º) Outra opção é a função SUBSTRING(), SUBSTR(), no caso não encontrar começa da posição 0.
Exemplo: SUBSTRING("Rua José Bonifácio", POSITION("Rua " IN "Rua José Bonifácio"));

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar