none
Extrair string e numeros de um campo endereço RRS feed

  • 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,


    terça-feira, 30 de outubro de 2012 17:34

Respostas

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

    terça-feira, 30 de outubro de 2012 17:45
  • 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.br

    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.

    terça-feira, 30 de outubro de 2012 17:49
    Moderador
  • 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.

    terça-feira, 30 de outubro de 2012 20:15
  • 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.br

    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.

    quarta-feira, 31 de outubro de 2012 13:30
    Moderador
  • 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.

    quarta-feira, 31 de outubro de 2012 17:12
  • 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.br

    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.

    quarta-feira, 31 de outubro de 2012 17:22
    Moderador
  • A todos, obrigado pela ajuda e dicas. Bom fds e feriado.
    quinta-feira, 1 de novembro de 2012 10:53