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

Cập nhật hàng với truy vấn con trả lại nhiều hàng

Trên Oracle, bạn có thể đặt các truy vấn chỉ trả về một hàng (truy vấn con vô hướng) trong dấu ngoặc đơn và sử dụng chúng như cách bạn sử dụng biến / cột:

UPDATE Table1 t1
SET D = (SELECT t2.D + t3.D 
         FROM Table2 t2
             ,Table3 t3
         WHERE t1.P = t2.P 
           AND t1.A = t3.A);

Nếu truy vấn con trả về nhiều hơn một hàng, bạn có thể muốn sử dụng SUM () trong truy vấn con. Chỉnh sửa:Nếu bạn không nối các bảng trong truy vấn con, bạn có thể nên sử dụng hai truy vấn con để thay thế.

UPDATE Table1 t1
SET D = (SELECT sum(t2.D) 
         FROM Table2 t2
         WHERE t1.P = t2.P)
        +
        (SELECT sum(t3.D)
         FROM Table3 t3
         WHEREt1.A = t3.A)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mã nào có sự tương ứng trong db

  2. Sử dụng giữ nguyên:ORA-00933:Lệnh SQL không được kết thúc đúng cách

  3. Con trỏ cơ sở dữ liệu có nhận các thay đổi đối với dữ liệu cơ bản không?

  4. Biến Oracle 11g Bind không tồn tại

  5. SQL:Bạn sẽ chia 100.000 bản ghi từ bảng Oracle thành 5 phần như thế nào?