用plsql 挺好的,sql的话可以用楼上说的sum累计;
例子:SQL> create table a
2as
3select level as l,trunc(dbms_random.value(100,1000)) as s from dual connect by level
SQL> select * from A t;
L
S
---------- ----------
1971
2218
3460
4118
5695
6316
7427
8759
9726
10326
10 rows selected
SQL> update a t
2 set t.s =
3 (select case
4
when sselect * from A t;
L
S
---------- ----------
1
0
2189
3460
4118
5695
6316
7427
8759
9726
10326
10 rows selected
SQL>
SQL> update a t
2 set t.s =
3 (select case
4
when sselect * from A t;
L
S
---------- ----------
1
0
2
0
3
0
4
0
5462
6316
7427
8759
9726
10326
10 rows selected
复制代码