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

Mệnh đề 'Trong' trong máy chủ SQL có nhiều cột

Cú pháp này không tồn tại trong SQL Server. Sử dụng kết hợp AndOr .

SELECT * 
FROM <table_name> 
WHERE 
  (value_type = 1 and CODE1 = 'COMM')
  OR (value_type = 1 and CODE1 = 'CORE') 

(Trong trường hợp này, bạn có thể làm cho nó ngắn hơn, vì value_type được so sánh với cùng một giá trị trong cả hai kết hợp. Tôi chỉ muốn hiển thị mẫu hoạt động giống như IN trong oracle với nhiều trường.)

Khi sử dụng IN với một truy vấn con, bạn cần phải diễn đạt lại nó như sau:

Oracle:

SELECT * 
FROM foo 
WHERE 
  (value_type, CODE1) IN (
    SELECT type, code 
    FROM bar
    WHERE <some conditions>)

Máy chủ SQL:

SELECT * 
FROM foo 
WHERE 
  EXISTS (
    SELECT * 
    FROM bar 
    WHERE <some conditions>
      AND foo.type_code = bar.type 
      AND foo.CODE1 = bar.code)

Có những cách khác để làm điều đó, tùy thuộc vào trường hợp, như liên kết bên trong và những cách tương tự.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi thời gian chạy:-2147217887 (80040e21) Hệ thống không thể tìm thấy nội dung tin nhắn cho số tin nhắn 0x80040e21 trong tệp tin nhắn cho OraOLEDB

  2. Tìm các mục trùng lặp trong bảng

  3. Lựa chọn phân trang, trên cơ sở dữ liệu hoặc trong ứng dụng web

  4. Đặt thuộc tính V $ SESSION.program trên Glassfish JDBC Connection Pool

  5. Làm cách nào để giám sát hoạt động SQL trên Oracle?