Verificador if else na cláusula where - sql

MySQL

Oracle

21/09/2015

Pessoal, preciso de um select que no where, faça uma verificação assim: se ( tiporelatorio = 'pagos' ) então usaria a condição que busca uma data de pagamento, agora, se (tiporelatorio = 'aberto') buscaria o que ainda não foi pago.

Meu select tá assim, sendo que ele só tá fazendo a verificação do que foi pago:

select p.codcli, c.cliente, p.prest, p.valor, p.dtvenc, p.dtpag, sysdate - p.dtvenc as atraso 
from pcprest p join pcclient c on (p.codcli = c.codcli)
where
p.dtpag > p.dtvenc
and p.dtvenc < sysdate 
and p.dtvenc between :dtinicio and :dtfim 
and p.CODCOB not in ('DEVP', 'DEVT', 'BNF', 'BNFT', 'BNFR', 'BNTR', 'BNRP', 'CRED','DESD')


eu precisava de algo tipo assim:

select ...
from...
where if :tiporelatorio like 'pago' then
p.dtpag > p.dtvenc
else if :tiporelatorio like 'aberto' then
p.dtpag is null


já tentei de várias formas fazer uma busca desse tipo mas não estou conseguindo
Eduardo Lima

Eduardo Lima

Curtidas 0

Respostas

Fernando C

Fernando C

21/09/2015

pesquise por case.. when
GOSTEI 0
Eduardo Lima

Eduardo Lima

21/09/2015

Tentei de algumas formas mas continua me retornando erro..
pesquise por case.. when
GOSTEI 0
POSTAR