Oracle的update語句set裡使用子查詢的例子解釋
阿新 • • 發佈:2019-01-10
終於領略到oracle的強大,可能其他資料庫的也可以.標準SQL?
Update ds_wap_query_top_count c
Set active_num = (Select nvl(active_num, 0)
From ds_wap_query_top_temp t
Where t.key_id = c.key_id
and t.channel_id=c.channel_id
and trunc(t.per_date) = to_date('2007-01-23','yyyy-MM-dd')
)
where trunc(c.per_date) = to_date('2007-01-23','yyyy-MM-dd')
;
這個SQL的意思是:
首先它會逐行update ds_wap_query_top_count 表,逐行update前它會對帶條件的ds_wap_query_top_temp 進行select 操作,當select的條件符合那行的資料時,就更新那行.有點遊標的感覺.