Bereken eerst de voorwaarde en pas deze vervolgens toe op de laatste SELECT
met behulp van CASE
. Zoiets als dit:
with temp (validexists) as
(select count(column1)
from table1
where column1 in ('Yes')
and column2 not like '%Yes%'
)
select *
into l_row
from table1
where column1 in ('Yes')
and column2 in (select column2
from table1 cross join temp
where column1 in ('Yes')
and column2 not like case when validexists = 0 then '%Yes%'
else '%No%'
end
);