Calcule a condição primeiro, depois aplique-a ao
SELECT
final usando CASE
. Algo assim: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
);