Usuário com melhor resposta
Extrair string e numeros de um campo endereço

Pergunta
-
Boa tarde amigos(as),
Estou extraindo os dados numericos e string de um campo campo endereço e na minha consulta abaixo tenho o seguinte resultado:
local1 ENDALUNO NUMEROALUN
Rua Delfin, 84 Delfin, 84 84
select
local1 as End,
rtrim(ltrim(replace(replace(replace(replace(local1,'rua', ''), 'R.', ''), ':', ''), 'Av.', ''))) as ENDALUNO,
replace(replace(replace(dbo.F_NUMEROS(local1), ',', ''),'.',''), '-','') as NUMEROALUN
from #TBAlunos
Como eu poderia fazer retirar o num 84 da coluna ENDALUNO?
Grato pela ajuda,
Respostas
-
OK Fabio, se já encontrou uma "direção", ótimo.
Por favor, classifique as respostas então, para encerrarmos esta Thread. Abs.
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.- Marcado como Resposta Fabio Gomes Silva quinta-feira, 1 de novembro de 2012 10:53
Todas as Respostas
-
Fábio,
Olha este script, veja se te ajuda:
declare @teste table (local1 varchar(50)) insert into @teste (local1) values ('Rua Delfin, 84') select local1 as End_Completo , substring(local1,1,charindex(',',local1)-1) as Endereco , substring(local1,charindex(',',local1)+1,len(local1)) as Numero from @teste
abs
"Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta." Érica Tohoma | http://bloggirlsa.wordpress.com
-
Fabio, esse tipo de situação chega a ser impossível de se fazer, caso não encontre uma regra, uma lógica, que lhe permita utilizar para extrair esta informação.
Poderíamos pensar, por exemplo: "Vamos pegar os últimos caracteres da string local1. Ou seja, depois do último espaço em branco até o final. Esse será o número do endereço."
Mas será que essa sempre será uma regra verdadeira? Possivelmente não.
Não sei o seu cenário, mas por se tratar de endereços, digo-lhe com propriedade que normalmente tem de tudo num campo como este: já vi endereços que o número estava no início, endereços que não tinha espaço em branco entre o logradouro e o número, endereços sem número, etc, etc, etc.
Ou seja, como este é um campo que normalmente fica totalmente a cargo do usuário preencher, as variações de conteúdo são enormes, de forma a inviabilizar a construção de uma regra que permita a extração de dados específicos.
Contudo, se seu cenário permitir, com exatidão, a criação de uma lógica a cerca do número do endereço, talvez possamos ajudar.
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.- Sugerido como Resposta Junior Galvão - MVPMVP terça-feira, 30 de outubro de 2012 20:49
-
Você está certo Roberson,
Estamos fazendo migração de dados, e a tabela de endereço está bem desorganizada, então único campo que vou separar é o numero e como os usuários(as) precisam revisar o cadastro já vou informar para efetuarem a correção.
Valeu galera.
-
OK Fabio. Mas mesmo que você queira separar apenas o número, ainda assim, se não houver uma 'regra' que possa ser aplicada, uma "verdade" em relação a "em que local" do endereço o número se encontra, não será possível extrair com exatidão o número de todos os endereços.
Você encontrou uma regra, uma lógica, para essa extração?
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta. -
Boa tarde Roberson,
Sim, fiz uma regra para pegar os numeros encontrados depois da string (endereço), pelo que comparei o campo não está tão bagunçado, somente depois do endereço + numero onde tenho dados do tipo apto xx, apt xx, vila xx, casa x, email, etc
Vou fazer um relatório basico em excel onde sofreu alterações e mando para equipe que está validando o cadastro.
-
OK Fabio, se já encontrou uma "direção", ótimo.
Por favor, classifique as respostas então, para encerrarmos esta Thread. Abs.
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.- Marcado como Resposta Fabio Gomes Silva quinta-feira, 1 de novembro de 2012 10:53
-
A todos, obrigado pela ajuda e dicas. Bom fds e feriado.
- Editado Fabio Gomes Silva quinta-feira, 1 de novembro de 2012 10:54