Como fazer essa consulta?
Pessoa,
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?
Parece que a minha lógica esta furada :(
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
Curtidas 0
Respostas
Weber
10/07/2006
SELECT * FROM MINHA_TABELA WHERE STATUS IN(:STATUS); ParamByName(´STATUS´).AsString := ´0,1´;
GOSTEI 0
Carlosib
10/07/2006
Por exemplo, o campo Status pode ter os seguintes valores:
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.
Como resolver isso?
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
Carlosib
10/07/2006
Resolvido!
Não sei se foi da melhor forma :? mas usei a UDF substring() do firebird.
Não sei se foi da melhor forma :? mas usei a UDF substring() do firebird.
GOSTEI 0