Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle:hợp nhất hai truy vấn khác nhau thành một, LIKE &IN

Như đã được nhận xét, tốt hơn và đơn giản hơn chỉ cần nối một số điều kiện:

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

Một cách khác là chèn các giá trị '% Medi%', '% Ciga%' và '% Tabacc%' vào một conditionTable, sau đó chạy truy vấn này:

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

Ở đây tôi giả định rằng bảng của bạn là department và conditionTable có một cột value . Nếu bạn triển khai giải pháp này, bạn nên quan tâm đến đồng thời và lọc điều kiệnTable theo một cái gì đó như

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

Cuối cùng, giải pháp thứ ba có thể hữu ích, nếu bạn không muốn sử dụng conditionTable, là tạo một chuỗi select <cond1> as value from dual union select <cond2> from dual... và được đặt vào một truy vấn động dưới dạng

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. Tình huống khởi đầu với oracle (nội dung truy vấn phụ)

  2. Hàm FROM_TZ () trong Oracle

  3. Làm cách nào để chọn hàng thứ 10, 20, 30 ... trong kết quả của một truy vấn chọn lọc khác

  4. Giá trị cao thứ hai từ bảng của Oracle DB

  5. GROUP BY với MAX (DATE)