Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mimvirtual

E agora?

Recommended Posts

Exite alguma função em SQL onde eu possa encontrar uma determinada palavra num registro?

P. ex.: Num campo tenho: situação anterior modificada usuário: fulano. Como faço para pegar os caracteres de usuário até o fim?

Usando a função substring eu tenho q saber d qual caracter inicia a captura, mas neste caso a posição da palavra usuário é variável. E agora?

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Select * from <Tabela> where <campo> LIKE '%usuário%'

 

Caso você queira comparar o tudo em minúsculo, use assim depois do where:

 

lower(<campo>) LIKE '%usuário%'

 

Até mais,

 

Renato

Compartilhar este post


Link para o post
Compartilhar em outros sites

O meu problema quase eh resolvido pela função SUBSTRING, so q nao sei a posição inicial da palavra X, estava querendo uma função q me retornasse apenas a expressao onde encontrasse o inicio de uma palavra, p.ex.:

 

valor do campo: motivo da substuição usuario fulano de tal

 

Gostaria q retornasse apenas: usuario fulano de tal

 

SELECT substring(<campo>,X,Y)

FROM <tabela>

WHERE <condição>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou tentar explicar melhor.

 

Em uma tabela tenho um campo chamado HISTORICO

 

HISTORICO

--------------------------------------------------------------------------------------------

Motivo: A pedido da filial usuário: Fulano de Tal Data: 01/01/2004

Motivo: Importado errada usuário: Ciclano Data: 01/02/2004

Motivo: Veiculo com pequenas avarias necessárias usuário: Data 03/03/04

 

Sendo cada linha acima um registro em minha tabela no campo HISTORICO.

 

Gostaria de uma consulta que me retornasse uma expressao apenas da palavra usuário até o fim. Se eu usar uma consulta com a função LIKE será apenas para retornar todos os registros onde tenha a ocorrencia da palavra USUARIO. O que mais se aproxima eh a função SUBSTRING, como em minha resposta anterior, so nao funciona corretamente pois o inicio da usuarios é variável.

 

Resposta:

HISTORICO

---------------------------------------------------------------------------------------------

usuário: Fulano de Tal Data: 01/01/2004

usuário: Ciclano Data: 01/02/2004

usuário: Data 03/03/04

 

Pessoal, valeu pela compreensao!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra quem acompanhou minha perigrinação em busca de uma função q me retornasse apenas a expressao apos determinada palavra, eu CONSEGUI!!!!! (eahuehauheuahuh), descobri uma função CHARINDEX, que retorna o indice de uma determinada palvra dentro de um campo.

 

CHARINDEX('PALAVRA',<campo>)

 

Ex.: Tabela TESTE

 

COD_TESTE HISTORICO

000123 Novo historico Usuario: Fulano

000152 Mais um historico Usuario: Ciclano

 

SELECT COD_TESTE, CHARINDEX('USUARIO',HISTORICO) INDICE

FROM TESTE

WHERE COD_TESTE = '000123'

 

Resultado:

 

COD_TESTE INDICE

000123 16

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.