Jump to content

Archived

This topic is now archived and is closed to further replies.

EmersonPFS

[Resolvido] Selecionar parte do campo texto

Recommended Posts

Fala galera.. preciso de um help..

 

Em minha tabela tenho um campo com dados semelhantes a este: R554101_USER001_DETALHE.PDF.

 

preciso criar um select para pegar somente o R554101 o _ poderia ser o limitador, mas nao achei a função especifica para fazer isto.

 

Alguem poderia me ajudar?

 

Há.. o trim neste caso nao ajuda... pois o primeiro valor varia de tamnhanho... hora ele pode ter 8 caracteres hora pode ter 10... 9.. e por ai vai...

 

Abraços...

Share this post


Link to post
Share on other sites

EmersonPFS

 

A função que você precisa para utilizar o delimitador pode ser a charindex.

 

Segue o link da função

 

[ ]'s

 

Fernando Silveira

 

Fala Fernando... beleza cara...

 

Então... acho que não entendi bem essa função... ela retorna a posição da palavra no campo? se for isso não me ajuda, pois preciso da palavra.

 

Ex.. tabela1

 

select CAMPO1, CAMPO2 FROM tabela1

 

CAMPO1 CAMPO2

SEQ1 R554101_USER001_TESTE.PDF

SEQ2 R4102_USER10_210409.PDF

SEQ3 R55986110_XXRR_158954.PDF

SEQ4 R0006P_USER0009_8542214.PDF

 

Preciso rodar um select tipo, select CAMPO2 from tabela1

aonde o resultado seja:

 

CAMPO1 CAMPO2

SEQ1 R554101

SEQ2 R4102

SEQ3 R55986110

SEQ4 R0006P

 

viu, preciso trazer somente o texto até o _, ele seria o caracter curinga por exemplo...

Essa função faz isso?

 

Valeu... abraços.

Share this post


Link to post
Share on other sites

EmersonPFS

 

Então, com a função charindex você consegue localizar a posição do "_" e com a função substring você consegue dizer o ponto de partida até o ponto final que você precisa extrair do texto.

 

Veja Função Substring

 

Acredito que utilizando essas duas funções seja o suficiente.

 

[ ]'s

 

Fernando Silveira

Share this post


Link to post
Share on other sites

EmersonPFS

 

Então, com a função charindex você consegue localizar a posição do "_" e com a função substring você consegue dizer o ponto de partida até o ponto final que você precisa extrair do texto.

 

Veja Função Substring

 

Acredito que utilizando essas duas funções seja o suficiente.

 

[ ]'s

 

Fernando Silveira

 

Fala Fernando...

Cara é exatamente isso que preciso.. porém sou meio... para nao falar completamente cabaço em SQL Server... e estou tendo o seguinte problema ao montar a estrutura correta.

 

Tentei desta forma... mas ela não funcionou:

 

SELECT SUBSTRING(CAMPO2,1,'SELECT CHARINDEX('_',CAMPO2) FROM TABELA') FROM TABELA

 

Ja usando SELECT SUBSTRING(CAMPO2,1,10) FROM TABELA, funcionou perfeitamente... porem ele só me traz os valores cujo _ esteja na posição 10.

 

Pode me ajudar a montar essa parada?

 

Valeu.. abraços.

Share this post


Link to post
Share on other sites

EmersonPFS

 

Fiz de um jeito sem usar o substring utilizando o texto do seu primeiro post. Veja se você consegue adaptar a sua tabela:

 

SELECT LEFT('R554101_USER001_DETALHE.PDF', CHARINDEX('_','R554101_USER001_DETALHE.PDF')-1);

[ ]'s

 

Fernando Silveira

Share this post


Link to post
Share on other sites

EmersonPFS

 

Olhando o post novamente, notei que é possível modificar a sua query utilizando o SUBSTRING. Faltava apenas um ajuste. Veja:

 

SELECT SUBSTRING(campo2, 1, CHARINDEX('_', campo2) -1) AS texto FROM TABELA;

[ ]'s

 

Fernando Silveira

Share this post


Link to post
Share on other sites

EmersonPFS

 

Olhando o post novamente, notei que é possível modificar a sua query utilizando o SUBSTRING. Faltava apenas um ajuste. Veja:

 

SELECT SUBSTRING(campo2, 1, CHARINDEX('_', campo2) -1) AS texto FROM TABELA;

[ ]'s

 

Fernando Silveira

 

 

Fala Fernando...

 

Cara... Perfeito... funcionou exatamente como precisava...

 

Valeu pela ajuda....

 

Abraços.

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.