Fórum Consulta Simples com Like ´¬´ #42126

05/02/2004

0

Caros,

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

Rafaelunp

Responder

Posts

05/02/2004

Maicongabriel

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!...


Responder

Gostei + 0

05/02/2004

Rafaelunp

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:

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


...


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar