Selecionando parte de um campo varchar no banco
14/02/2017
0
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
Post mais votado
14/02/2017
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
Mais Posts
24/02/2017
Tiago Dias
Vou ver como é no SQL Server e te falo como é :)
Obrigado!
09/03/2017
David Styveen
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
Clique aqui para fazer login e interagir na Comunidade :)