EXTRAIR NOME E SOBRENOME

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
leodamian
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 3
Registrado em: Sex, 22 Jan 2021 10:17 am
Localização: SOROCABA

Boa Tarde Pessoal,
Estou tentando gerar uma consulta onde apareça somente o primeiro e o ultimo nome de um cliente.
Registo : Jose Maria da Silva Barros | Resultado: José Barros.

Estou tentando usar regexp_substr ,substr e nada.... :?

BASE ORACLE
Avatar do usuário
tiago_pimenta
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 213
Registrado em: Qua, 29 Jun 2011 9:49 am
Localização: Barretos / SP

Bom dia, tudo bem ???

Não sei se tem uma forma mais fácil, mas eu tentaria pegar as posições dos espaços em branco na string, no exemplo que você deu, o primeiro espaço em branco seria na posição 5. Então eu pegaria o texto da primeira posição até a posição do espaço em branco - 1, que daria 4. Aqui daria para pegar o primeiro nome.

Para pegar o último nome, o último espaço em branco está na posição 20 se não me engano... Então eu pegaria a string da posição em branco + 1 até o tamanho inteiro da string do nome...
leodamian
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 3
Registrado em: Sex, 22 Jan 2021 10:17 am
Localização: SOROCABA

tiago_pimenta escreveu:
Seg, 06 Fev 2023 9:45 am
Bom dia, tudo bem ???

Não sei se tem uma forma mais fácil, mas eu tentaria pegar as posições dos espaços em branco na string, no exemplo que você deu, o primeiro espaço em branco seria na posição 5. Então eu pegaria o texto da primeira posição até a posição do espaço em branco - 1, que daria 4. Aqui daria para pegar o primeiro nome.

Para pegar o último nome, o último espaço em branco está na posição 20 se não me engano... Então eu pegaria a string da posição em branco + 1 até o tamanho inteiro da string do nome...
Boa Tarde,
Na questão dos espaços em branco e as posições é variavel, pois cada nome tem um , dois ,três ou mais palavras.
Fiz dessa forma

Selecionar tudo

SUBSTR( PCEMPR.NOME, 1, INSTR( PCEMPR.NOME,' ')-1) || '' || substr( PCEMPR.NOME, INSTR( PCEMPR.NOME, ' ', -1))
, peguei o primeiro nome e concatenei com o ultimo, pois não consegui fazer em um só instrução.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Majestic-12 [Bot] e 28 visitantes