ORACLE 多表關聯 UPDATE 語句

2021-07-12 02:49:04 字數 1198 閱讀 1702

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 平均單價.領用平均單價 歷...