待更新表 -表名 newtab
name
value
電腦手機
導管資料**表-表名 oldtab
goods
price
電腦$1600
手機$12
導管$1
將oldtab表中的price值更新到newtab的value中去,關聯關係是oldtab.goods=newtab.name
begin
for temp_tab in
(select a.rowid,b.price
from newtab a,oldtab b
where a.name=b.goods
)loop
update newtab set
value
= temp_tab .price where
rowid = temp_tab.rowid;
endloop
;end
;
用常規sql寫法,巢狀查詢,乙個幾萬資料的表,草,更新花了半個多小時,還沒執行完,而這個寫法,媽的1秒不到,所以必須記一下。
常規sql類似如下:
update newtab a
set a.
value=(
select b.price from oldtab b where a.name=b.goods)
where exits (
select
1from oldtab c where a.name=c.goods )
;
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中有子查詢,則執行子...
oracle 多表關聯更新語句
在使用資料庫進行更新操作時,我們可能會碰到一種情況,有表a和表b兩張表,需要更新表b中的某個欄位時,需要關聯a b兩表,將a表中的字段值賦值給b,此時執行sql語句如下 update 表a set a.欄位1 select b.欄位1 from 表b where a.欄位2 b.欄位2 where ...