Consulta Simples com Like ´¬´
Caros,
Estou com a seguinte consulta:
Porém preciso que se o usuario não escolher nenhum parametro, a consulta deve ser executada. Por exemplo, no Sql eu faria assim:
e se o usuario deixasse os parametros em branco, eu executaria a consulta com ´¬´, o que me retornaria os registros corretos. Pelo que pude perceber no IB não existe o parametro ´¬´ para retornar qualquer registro... Como posso executar esta consulta!?
Estou com a seguinte consulta:
SELECT * FROM TBMOVIMENTACAO
WHERE MVDATAPGTO BETWEEN :DATAINI AND :DATAFIM
AND MVDESCRICAOCOD = :DESCRICAOCOD
AND MVDESTINOCOD = :DESTINOCOD
AND MVCONTACOD IN (:CONTA)
AND MVCARTAOCOD = :CARTAOCOD
AND MVAGENDA = :AGENDA
ORDER BY MVDATAPGTO;
Porém preciso que se o usuario não escolher nenhum parametro, a consulta deve ser executada. Por exemplo, no Sql eu faria assim:
SELECT * FROM TBMOVIMENTACAO
WHERE MVDATAPGTO BETWEEN :DATAINI AND :DATAFIM
AND MVDESCRICAOCOD LIKE ´:DESCRICAOCOD´
AND MVDESTINOCOD LIKE ´:DESTINOCOD´
AND MVCONTACOD IN (:CONTA)
AND MVCARTAOCOD LIKE ´:CARTAOCOD´
AND MVAGENDA LIKE ´:AGENDA´
ORDER BY MVDATAPGTO;
e se o usuario deixasse os parametros em branco, eu executaria a consulta com ´¬´, o que me retornaria os registros corretos. Pelo que pude perceber no IB não existe o parametro ´¬´ para retornar qualquer registro... Como posso executar esta consulta!?
Rafaelunp
Curtidas 0
Respostas
Maicongabriel
05/02/2004
Porém preciso que se o usuario não escolher nenhum parametro, a consulta deve ser executada. Por exemplo, no Sql eu faria assim:
[quote:c9ad221a4d]SELECT * FROM TBMOVIMENTACAO
WHERE MVDATAPGTO BETWEEN :DATAINI AND :DATAFIM
AND MVDESCRICAOCOD LIKE ´:DESCRICAOCOD´
AND MVDESTINOCOD LIKE ´:DESTINOCOD´
AND MVCONTACOD IN (:CONTA)
AND MVCARTAOCOD LIKE ´:CARTAOCOD´
AND MVAGENDA LIKE ´:AGENDA´
ORDER BY MVDATAPGTO;
e se o usuario deixasse os parametros em branco, eu executaria a consulta com ´¬´, o que me retornaria os registros corretos. Pelo que pude perceber no IB não existe o parametro ´¬´ para retornar qualquer registro... Como posso executar esta consulta!?[/quote:c9ad221a4d]
No IB/FB existe o uso de ´¬´ junto do Like!
Seria algo como
AND MVDESCRICAOCOD LIKE ´¬´ || ´:DESCRICAOCOD´ || ´¬´
Mas neste seu segundo caso, se qualquer coisa serve(qualquer registro), simplesmente omita as linhas ::
AND MVDESCRICAOCOD LIKE ´:DESCRICAOCOD´
AND MVDESTINOCOD LIKE ´:DESTINOCOD´
AND MVCARTAOCOD LIKE ´:CARTAOCOD´
AND MVAGENDA LIKE ´:AGENDA´
Que o resultado será o mesmo!...
GOSTEI 0
Rafaelunp
05/02/2004
MaiconGabriel,
Realmente percebi que existe o Like ´¬´ no IB. Me erro não estava 100¬ neste caso. Fiz uns testes e descobri que minha consulta estava retornando errada porque eu tinha uma coluna completamente nula (null) e a consulta estava desconhecendo o valor null, por exemplo:
Como toda a coluna estava com o valor null, a consulta estava me retornando vazia.
Porem nao consegui fazer o ||, por exemplo:
Nem
...
Realmente percebi que existe o Like ´¬´ no IB. Me erro não estava 100¬ neste caso. Fiz uns testes e descobri que minha consulta estava retornando errada porque eu tinha uma coluna completamente nula (null) e a consulta estava desconhecendo o valor null, por exemplo:
AND MVCARTAOCOD LIKE ´¬´
Como toda a coluna estava com o valor null, a consulta estava me retornando vazia.
Porem nao consegui fazer o ||, por exemplo:
AND MVCARTAOCOD LIKE ´¬´ || NULL
Nem
AND MVCARTAOCOD LIKE NULL
...
GOSTEI 0