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

Oracle:łączenie dwóch różnych zapytań w jedno, LIKE &IN

Jak już skomentowaliśmy, lepiej i prościej jest po prostu połączyć kilka warunków:

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

Innym sposobem jest wstawienie tych wartości „%Medi%”, „%Ciga%” i „%Tabacc%” do tabeli warunków, a następnie uruchomienie tego zapytania:

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

Zakładam, że twoja tabela to department oraz że tabela warunków ma kolumnę value . Jeśli zaimplementujesz to rozwiązanie, powinieneś zadbać o współbieżność i filtrować tabelęwarunków według czegoś takiego jak

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

Wreszcie trzecie rozwiązanie, które może być przydatne, jeśli nie chcesz używać tabeli warunków, to wygenerowanie ciągu select <cond1> as value from dual union select <cond2> from dual... i umieszczone w dynamicznym zapytaniu 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak radzić sobie z wieloma strefami czasowymi w aplikacjach przechowujących daty i godziny?

  2. Czy aktualizacja SQL wpłynie na jej podzapytanie podczas wykonywania aktualizacji?

  3. Używanie ciągu znaków w procedurze składowanej Oracle

  4. ORA-00923:słowo kluczowe FROM nie zostało znalezione w oczekiwanym miejscu — SQLDeveloper

  5. dodawanie miesięcy do daty SQL