Como identificar em uma string o primeiro espaco em branco

19/10/2004

0

Pessoal, tenho uma tabela que contem o campo nome. Este campo nome contem por exemplo: Antonio da Silva, gostaria que retornasse somente o valor Antonio. Preciso de uma regra que identifique o primeiro espaco em branco, pois o tamanho do primeiro nome pode variar por exemplo podemos encontrar: Antonio da Silva, Rosangela de Oliveira, Caio Almeira.. enfim nao ha uma padronizacao qto ao tamanho do primeiro nome. Alguem pode me ajudar? Grato


Jrteixeira

Jrteixeira

Responder

Posts

19/10/2004

Felipe_cduarte

fala blz ??

to meio sem tempo de testar mas vc pode usar o comando CHARINDEX

fica assim: @teste = CHARINDEX( ´ ´, campo, 0 )

ai vai te dar a posição do espaço

depois tu faz SUBSTRING( campo, 1, @teste - 1)

como montar no select eu nao consegui legal, mas os comandos sao esses.. qq coisa é só pesquisar CHARINDEX no BOL

[]´s


Responder

25/10/2004

Jrteixeira

E ai Felipe, beleza?
Estou tentando usar a sua dica mas estou recebendo msg de erro
(Server: Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near ´=´.
Server: Msg 137, Level 15, State 1, Line 3
Must declare the variable ´@teste´)

minha linha de comando é:
declare @teste = CHARINDEX(´ ´,acc_firsname,0),
select
SUBSTRING( acc_firsname, 1, @teste - 1)
from
rochedef..account

Onde estou errando? gostaria de testar a sua sugestao.



Agora.. tentei de uma outra forma que pesquisei o tbem deu certo:
SELECT
LEFT(CAMPO,PATINDEX(´¬ ¬´,CAMPO))NOME_CAMPO
FROM BANCO..TABELA

Grato


Responder

25/10/2004

Felipe_cduarte

Fala cara blz ??

tava sem tempo mesmo pra montar akela resposta mas ai vai agora:

declare @teste int

select @teste = charindex( ´ ´, daluno, 0 )
from acad_alunos
WHERE caluno = 1

Select substring( daluno, 1, ( @teste - 1 ) )
from acad_alunos
WHERE caluno = 1

este é um exemplo de um BD de minha empresa... estou partindo do pressuposto que já se saiba qual pessoa se deseja o primeiro nome ( por isso a condicao WHERE )

PS: testei sua condição tb e acredito q seja uma solucao melhor, pelo menos tem menos linhas hehe :P


[]´s


Responder

25/10/2004

Felipe_cduarte

Fala !!

é impressionante como as ideias aparecem pra gente num estalo ! é só fazer isso tb:

SELECT
LEFT(campo, charindex( ´ ´, campo ) )
FROM tabela

eskece tudo lá de cima :P ! testei as duas formas no Execution Plan e me parece que tem o mesmo custo... entao EMPATOU hehehehehe


[]´s


Responder

26/10/2004

Jrteixeira

Fala !! é impressionante como as ideias aparecem pra gente num estalo ! é só fazer isso tb: SELECT LEFT(campo, charindex( ´ ´, campo ) ) FROM tabela eskece tudo lá de cima :P ! testei as duas formas no Execution Plan e me parece que tem o mesmo custo... entao EMPATOU hehehehehe []´s



Bele.. tbem funciona..
Valeu pela ajuda.. :P


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar