Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle:обединяване на две различни заявки в една, LIKE &IN

Както вече беше коментирано, по-добре и по-лесно е просто да свържете няколко условия:

where departmentName like '%Medi%'
   or departmentName like '%Ciga%'
   or departmentName like '%Tabacc%';

Друг начин е да вмъкнете тези стойности „%Medi%“, „%Ciga%“ и „%Tabacc%“ в таблица с условия и след това да изпълните тази заявка:

select department.*
  from department
 cross join conditionTable
 where department.departmentName like conditionTable.value;

Предполагам тук, че вашата таблица е department и че таблицата с условия има колона value . Ако внедрите това решение, трябва да се грижите за паралелността и да филтрирате conditionTable по нещо като

select department.*
  from department
 inner join conditionTable on conditionTable.session = yourSessionId
 where department.departmentName like conditionTable.value;

И накрая, трето решение, което може да е удобно, ако не искате да използвате conditionTable, е да генерирате низ select <cond1> as value from dual union select <cond2> from dual... и поставени в динамична заявка като

select department.*
  from department
 cross join
   (select '%Medi%' as value from dual
     union
    select '%Ciga%' from dual
     union
    select '%Tabacc%' from dual) conditionTable
 where department.departmentName like conditionTable.value;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle като решение за мутиращи таблици

  2. Функция RPAD() в Oracle

  3. Oracle SQL:Разбиране на поведението на SYS_GUID(), когато присъства във вграден изглед?

  4. Oracle създава таблица като нулева стойност

  5. Затваряне на ResultSet, но не и затваряне на PreparedStatement