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的条件符合那行的数据时,就更新那行.有点游标的感觉.
  

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值