Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida Sql


Guest sllc

Pergunta

Olá,

Estou precisando fazer uma consulta usando SQL, mas filtrando parte de um campo e não o conteúdo todo dele. Por exemplo, em um campo chamado REFERENCIA tipo string que tem o formato XXXXXX (6 caracteres), eu gostaria de filtrar apenas os três últimos caracteres através de uma consulta select em um clientdataset do datamodule.

dtmdlBiblioteca.clntdtstMovimento.commandtext := 'select * from MOVIMENTO where REFERENCIA='+QuotedStr(edit1.text);

do jeito que está hoje funciona normalmente, mas só se o conteúdo de Edit1.Text tiver 6 caracteres. Como estou precisando testar apenas os últimos 3 caracteres do campo, estou enrolado. Posso, por exemplo, vir a precisar de filtrar também apenas o terceiro caracter do campo. E não sei como fazer isso.

Alguém poderia ajudar??? Agradeço desde já.

Att.

Sergio

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
Olá,

Estou precisando fazer uma consulta usando SQL, mas filtrando parte de um campo e não o conteúdo todo dele. Por exemplo, em um campo chamado REFERENCIA tipo string que tem o formato XXXXXX (6 caracteres), eu gostaria de filtrar apenas os três últimos caracteres através de uma consulta select em um clientdataset do datamodule.

dtmdlBiblioteca.clntdtstMovimento.commandtext := 'select * from MOVIMENTO where REFERENCIA='+QuotedStr(edit1.text);

do jeito que está hoje funciona normalmente, mas só se o conteúdo de Edit1.Text tiver 6 caracteres. Como estou precisando testar apenas os últimos 3 caracteres do campo, estou enrolado. Posso, por exemplo, vir a precisar de filtrar também apenas o terceiro caracter do campo. E não sei como fazer isso.

Alguém poderia ajudar??? Agradeço desde já.

Att.

Sergio

dtmdlBiblioteca.clntdtstMovimento.commandtext := 'select * from MOVIMENTO where REFERENCIA='+QuotedStr(edit1.text);

como neste comando você esta usando uma string é facil, experimente:

dtmdlBiblioteca.clntdtstMovimento.commandtext := 'select * from MOVIMENTO where REFERENCIA='+QuotedStr(copy(trim(edit1.text,4,3)));

neste caso você estara pegando apartir do quarto caracter mais 3. se o edit estiver assim '123456' vai ficar '456' . sera que é assim que você tá querendo ?

Link para o comentário
Compartilhar em outros sites

  • 0

você poderia, ainda, tentar utilizar o LIKE na cláusula WHERE:

'select * from MOVIMENTO where REFERENCIA LIKE '+QuotedStr('%' +edit1.text);

o % antes do texto a procurar resultará em localizar tudo que termine com a sequência em edit1.text;

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...