sql >> Databáze >  >> RDS >> Oracle

Oracle:sloučení dvou různých dotazů do jednoho, LIKE &IN

Jak již bylo zmíněno, je lepší a jednodušší pouze zřetězit několik podmínek:

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

Dalším způsobem je vložit tyto hodnoty '%Medi%', '%Ciga%' a '%Tabacc%' do conditionTable a poté spustit tento dotaz:

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

Zde předpokládám, že váš stůl je department a že tabulka conditionTable má sloupec value . Pokud implementujete toto řešení, měli byste se starat o souběžnost a filtrovat conditionTable podle něčeho jako

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

Konečně třetím řešením, které by mohlo být užitečné, pokud nechcete používat tabulku podmínek, je vygenerovat řetězec select <cond1> as value from dual union select <cond2> from dual... a umístí se do dynamického dotazu jako

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. Jak vložit záznam do MySQL s PHP s HTML formulářem

  2. 50 odstínů NULL – různé významy NULL v SQL

  3. Klíčové slovo LIMIT na MySQL s připraveným příkazem

  4. Začínáme s replikací streamování PostgreSQL