Selecionando parte de um campo varchar no banco
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á!
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
Curtidas 0
Melhor post
Aline Bianchini
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)
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
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
GOSTEI 4
Mais Respostas
Tiago Dias
14/02/2017
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!
Vou ver como é no SQL Server e te falo como é :)
Obrigado!
GOSTEI 1
David Styveen
14/02/2017
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
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
GOSTEI 3