有如下表:
A B
0 100
100 0
200 0
...
能不能更新成
A B
0 100
100 200
200 400
..?也就是本行的A值+上一行的B值就等于本行的B值?求助

解决方案 »

  1.   

    select a,b,sum(a+b)over() from tab
      

  2.   

    select a,b,sum(a+b)over() from tab
      

  3.   

    select a+lag(b,1) over (order by n),b from tab
    用LAG
      

  4.   


    --上面那个写错了
    --再试下呢
    select a,b,
    sum(a+b)over(order by a rows between unbounded preceding and current row) c 
    from tab
      

  5.   

    7楼的看不明白,好像不行,8楼的可行,但是把我SELECT出来的顺序弄乱了,但ORDER BY后加个ROWID就好了,能问下那句话是啥意思吗
      

  6.   

    分析函数,一两句话说不太清楚,建议看看Oracle分析函数吧