1. 程式人生 > >Oracle的update語句set裡使用子查詢的例子解釋

Oracle的update語句set裡使用子查詢的例子解釋

終於領略到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的條件符合那行的資料時,就更新那行.有點遊標的感覺.