Fórum Como fazer essa consulta? #56489
10/07/2006
0
tenho um campo char(8) em minha tabela. o nome do campo é STATUS e o valor de cada caracter é 0 ou 1.
Desta forma posso ter por exemplo: 00001101 ou 00000000 ou 10101010 e assim por diante.
Preciso disponibilizar uma pesquisa onde o usuário poderá informar por qual indice do caracter do campo STATUS ele deseja pesquisar.
Por exemplo, o usuário pode fazer o seguinte filtro:
XX0XX1XX onde X significa qquer valor entre 0 e 1.
Pensei em usar o like. Seria a melhor opção?
´SELECT * FROM MINHA_TABELA WHERE STATUS = :STATUS´; ParamByName(´STATUS´).AsString := ´¬¬0¬¬1¬¬´; isso é possível?
Parece que a minha lógica esta furada :(
Carlosib
Curtir tópico
+ 0Posts
10/07/2006
Weber
SELECT * FROM MINHA_TABELA WHERE STATUS IN(:STATUS); ParamByName(´STATUS´).AsString := ´0,1´;
Gostei + 0
10/07/2006
Carlosib
1 caracter indica que o contrato esta ativo (0 ativo 1 não ativo)
2 caracter indica que o contrato esta pendente (0 pendente 1 não pendente)
3 caracter indica que o contrato está digitalizado (0 digitalizado 1 não digitalizado)
e por ai vai.
4 caracter em análise (0 em análise 1 já analisado)
Desta forma a string armazenada no banco de dados pode ter o seguinte valor
1011(não ativo - pendente - digitalizado - já analisado)
O usuário pode querer saber quais os contratos estão digitalizados independete de estarem ativos ou não; ou pendente ou não; ou analisados ou não.
´SELECT * FROM MINHA_TABELA WHERE STATUS LIKE :STATUS´; ParamByName(´STATUS´).AsString := ´¬¬0¬´; //
Como resolver isso?
Gostei + 0
11/07/2006
Carlosib
Não sei se foi da melhor forma :? mas usei a UDF substring() do firebird.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)