|
|
o,
declare
i integer := 1;
begin
for c in (select rowid rid from test order by v desc) loop
update test set o = i where rowid = c.rid;
i := i + 1;
end loop;
end;
/
用一个变量记录前一记录序号
一个变量循环自增
在循环体内,判定相临的 排序记录之间值是否相同
如果相同则 更新为跟前一个相同的序号,不同则更新为 自增序号
我想对于程序 处理这类问题,各位不应该太拘泥
pl/sql 之所以叫 pl/sql ,就是为了让大家施展 流程控制 结构 的长处的 
btw: 关于 oracle8i personal edition release 8.1.6.0.0.
看你的 compatible 修改为 8.1.6 以上跟你的真实版本一致 |
|