Selecionando parte de um campo varchar no banco

14/02/2017

0

Pessoal,

Gostaria da ajuda de vocês na seguinte questão. Preciso pegar uma parte apenas de um campo varchar, como no exemplo abaixo:

Tabela de origem:

NOME
JORGE LUIZ MAGALHÃES DA SILVA
ELZA APARECIDA GONÇALVES MARQUES

Resultado do select:
MAGALHÃES
GONÇALVES

Como posso fazer para pegar esse resultado?

Agradeço desde já!
Tiago Dias

Tiago Dias

Responder

Post mais votado

14/02/2017

Oi Tiago, tudo bem?

Não sei se entendi muito bem, mas vamos lá... Pelo que vi, você quer 'pegar' um dos sobrenome da pessoa certo? Nesse caso, a terceira ocorrência após o espaço certo? Como você não tem uma palavra para usar o like o único modo que eu achei de fazer é com regex, não sei se é o melhor jeito, mas talvez te ajude a ter uma ideia melhor.

Segue um exemplo ( em Oracle, mas deve ter um equivalente em SQL)

 select regexp_substr(t.name, '[^[:space:]]+', 1, 3 ), t.name
  from tabela t


Onde '[^[:space:]]+' é o pattern a ser procurado
1--> É o start da string
3--> Número da ocorrência que você quer obter,


JORGE - 1 ocorrência
LUIZ - 2 ocorrência
MAGALHÃES - 3 ocorrência
DA - 4 ocorrência
SILVA - 5 ocorrência

Aline Bianchini

Aline Bianchini
Responder

Mais Posts

24/02/2017

Tiago Dias

Oi Aline, desculpa a demora. Então no caso só desse jeito mesmo né, usando patterns para verificar o padrão que está vindo na consulta.

Vou ver como é no SQL Server e te falo como é :)

Obrigado!
Responder

09/03/2017

David Styveen

Bom dia, Aline e Tiago.

Existem as opções de CHARINDEX, LEFT, RIGHT, SUBSTRING, INVERSE.
Precisaria entender melhor a necessidade para melhor ajudá-lo como por exemplo, se existirem apenas dois nomes o que deve retornar?

Abraços
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar