Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle JEŻELI ISTNIEJE TO, INACZEJ

Najpierw oblicz warunek, a następnie zastosuj go do końcowego SELECT używając CASE . Coś takiego:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Efektywność kwartalnego naliczania stanu zatrudnienia

  2. Podziel ciąg według pozycji ogranicznika za pomocą oracle

  3. SQL Developer nie wyświetla XML

  4. Komunikat o błędzie ASP Classic SQL Query, proszę o prawidłową składnię

  5. Jak udostępniać dane w organizacji