Meu objetivo abaixo é retornar os dados de um determinado período. Podemos considerar neste exemplo período 2 como período futuro e 1 período ativo, sendo que os dados que eu quero que retorne será o período 2 MAAAAS se não tiver período 2 na tabela APERIODO, eu quero que retorne os dados do período 1. Com isso, dentro da minha cláusula WHERE eu crio um subselect da tabela APRIODO onde o status seja:
2 se existir, se não, retorne 1.
Note que dentro do meu WHERE (1º) eu faço um SELECT e chamo outro WHERE, e dentro deste 2º WHERE, eu crio uma condicional com o IF (case). Caso exista dados com período 2, considere este, se não, considere 1.
WHERE ASALDOBANCOHOR.FIMPER = (
SELECT FIMMENSAL
FROM aperiodo
WHERE APERIODO.STATUSPERIODO = CASE
WHEN EXISTS (SELECT 1 FROM aperiodo WHERE APERIODO.STATUSPERIODO = 2)
THEN 2
ELSE 1
END
)