sql >> Database >  >> RDS >> Oracle

Oracle:twee verschillende queries samenvoegen tot één, LIKE &IN

Zoals al is opgemerkt, is het beter en eenvoudiger om verschillende voorwaarden samen te voegen:

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

Een andere manier is om die waarden '%Medi%', '%Ciga%' en '%Tabacc%' in een conditionTable in te voegen en vervolgens deze query uit te voeren:

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

Ik neem hier aan dat uw tabel department is en dat de conditionTable een kolom value . heeft . Als u deze oplossing implementeert, moet u zich bekommeren om gelijktijdigheid en conditionTable filteren op iets als

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

Ten slotte is een derde oplossing die handig kan zijn, als u geen conditionTable wilt gebruiken, het genereren van een string select <cond1> as value from dual union select <cond2> from dual... en in een dynamische zoekopdracht geplaatst als

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. Converteer een stukje SQL naar een Oracle-functie

  2. Overeenkomende algoritme in SQL

  3. Python:best practice en veiligste manier om verbinding te maken met MySQL en query's uit te voeren

  4. Hoe maak je een primaire sleutel in SQL