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)