locked
Selecionar sobrenome no SQL 2000 RRS feed

  • Pergunta

  • Ola a todos, estou tendo um problema em uma query que preciso montar. Tenho uma relação de pessoas registradas em uma tabela onde o campo nome esta preenchido com o nome completo da pessoa e necessitaria selecionar apenas o ultimo nome , por exemplo:

    Antonio José da Silva à Silva

    Pedro Joaquim Fonseca à Fonseca

    Já tentei utilizar o comando right porem não consegui um resultado satisfatório tendo em vista que não existe um critério definido para cada nome.

    Espero que alguém possa me ajudar e desde já agradeço a ajuda de todos

     

    terça-feira, 8 de janeiro de 2008 11:04

Respostas

  •  

    Obrigado pela ajuda Marcelo e Junior

     

    Consegui resolver o problema na query, o erro estava no charindex que deveria ter um REVERSE tambem. Segue o Exemplo abaixo caso alguem possa precisar

     

    Select reverse(substring(Reverse('PAULA MARIA GOLDENBERG'),1,charindex(' ',REVERSE('PAULA MARIA GOLDENBERG'))+0))

     

    terça-feira, 8 de janeiro de 2008 13:24

Todas as Respostas

  • segue exemplo

     


    Select reverse(substring(Reverse('Pedro Joaquim Fonseca'),1,charindex(' ', 'Pedro Joaquim Fonseca')+1))

     

     

    Abs.;

     

    terça-feira, 8 de janeiro de 2008 11:09
  •  

    Oi Marcelo

     

    Fiz oque você falou, em alguns casos ele funciona, o resultado foi parecido com a função  Right porem o erro que acontece eh o mesmo

     

    execute a Query abaixo e veja o erro

     

    Select reverse(substring(Reverse('PAULA MARIA GOLDENBERG'),1,charindex(' ', 'PAULA MARIA GOLDENBERG')+1))

     

    Ele me da de resposta apenas DENBERG . Isso acontece com outros nomes tambem

    terça-feira, 8 de janeiro de 2008 12:31
  • Anderson,

     

    Veja se este outro exemplo poderá te ajudar:

     

    Code Block

    Declare @TabelaNome Table (Nome VarChar(30))

    Insert Into @TabelaNome Values('Pedro Antonio Galvão')

    Insert Into @TabelaNome Values('José Joaquim da Silva')

     

    Select Reverse(Left(Reverse(SubString(Nome,1,Len(Nome))),CharIndex(' ',Nome))) From @TabelaNome

     

     

    terça-feira, 8 de janeiro de 2008 12:33
    Moderador
  •  

    OI JUNIOR,

     

    USEI SUA QUERY POREM O ERRO QUE EU DESCREVI PARA O MARCELO TAMBEM ACONTECE. VALEU PELA AJUDA

    terça-feira, 8 de janeiro de 2008 12:40
  •  

    Obrigado pela ajuda Marcelo e Junior

     

    Consegui resolver o problema na query, o erro estava no charindex que deveria ter um REVERSE tambem. Segue o Exemplo abaixo caso alguem possa precisar

     

    Select reverse(substring(Reverse('PAULA MARIA GOLDENBERG'),1,charindex(' ',REVERSE('PAULA MARIA GOLDENBERG'))+0))

     

    terça-feira, 8 de janeiro de 2008 13:24
  • Anderson,

     

    Que bom, espero ter ajudado.

    terça-feira, 8 de janeiro de 2008 13:28
    Moderador