1) 最簡單的形式
sql **
--經確認customers表中所有customer_id小於1000均為'北京'
--1000以內的均是公司走向全國之前的本城市的老客戶:)
update
customers
set city_name='北京
'where customer_id<
1000
2) 兩表(多表)關聯update -- 僅在where字句中的連線
sql **
--這次提取的資料都是vip,且包括新增的,所以順便更新客戶類別
update customers a --
使用別名
set customer_type='01
'--01 為vip,00為普通
where
exists (select
1from
tmp_cust_city b
where b.customer_id=
a.customer_id
)
3) 兩表(多表)關聯update -- 被修改值由另乙個表運算而來
sql **
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
1from
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
1from
tmp_cust_city b
where b.customer_id=
a.customer_id
)
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 平均單價.領用平均單價 歷...