最初に条件を計算してから、それを最後のSELECT
に適用します CASE
を使用する 。このようなもの:
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
);