Berechnen Sie zuerst die Bedingung und wenden Sie sie dann auf das abschließende SELECT
an mit CASE
. Etwa so:
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
);