Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle IF Existiert THEN, ELSE

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
                     );