oracle 多表關聯 update 語句 兩表(
多表)關聯update
-- 僅在
where
字句中的連線
--直接賦值
update customers a -- 使用別名
set customer_type='01'
where exists (select 1
from tmp_cust_city b
where b.customer_id=a.customer_id 兩表(
多表)關聯update
-- 被修改值由另乙個表運算而來
-- update 1個值
update customers a -- 使用別名
set city_name=(select b.city_name from tmp_cust_city b where b.customer_id=a.customer_id)
where exists (select 1
from tmp_cust_city b
where b.customer_id=a.customer_id
-- update 超過2個值
update customers a -- 使用別名
set (city_name,customer_type)=(select b.city_name,b.customer_type
from tmp_cust_city b
where b.customer_id=a.customer_id)
where exists (select 1
from tmp_cust_city b
where b.customer_id=a.customer_id
其中where exists (select 1
from tmp_cust_city b
where b.customer_id=a.customer_id
很重要。因為前面的update語句,update的是全表,如果(select b.city_name from tmp_cust_city b where b.customer_id=a.customer_id)select值存在,會update,如果值不存在,就會update成null,不符合需求,所以,要加上exists語句,這樣,就只會update存在的記錄,當然,也可以使用nvl函式。
oracle多表關聯更新
1.首先將其他表的資料抽取到一張臨時表裡面。create table temp dim2 as select t.stdaddr,s.dzbm from demp dim t,dzmlpxz pt s where t.sdaddr s.mc 2.進行分組查詢,看看裡面的記錄是否有重複的。select...
oracle多表關聯更新
oracle的更新語句不通mssql那麼簡單易寫,就算寫出來了,但執行時可能會報 這是由於set 的子查詢查出了多行資料值,oracle規定一對一更新資料,所以提示出錯。要解決這樣必須保證查出來的值一一對應。原理 update語句的原理是先根據where條件查到資料後,如果set中有子查詢,則執行子...
SQLSERVER中 多表鏈結的UPDATE 方法
錯誤方式 update 歷史庫存 inner join 平均單價 on 歷史庫存.產品編號 平均單價.產品編號 set 歷史庫存.期末金額 round 平均單價.領用平均單價 歷史庫存.期末數量,0 正確方式 update 歷史庫存 set 歷史庫存.期末金額 round 平均單價.領用平均單價 歷...