update a a set a.盒内号=rownum where a.盒号='C-410727-0020' order by a.登记号 asc;
怎么实现以上的意思 跪求
可以使用游标来处理。
begin这个表里有许多C-410727-0020这样的盒号 ,一个300个 ,我想把他按照登记号从1排到300,你上边说的这个是直接更新成rownum了,得先排序 然后再弄,游标我不太清楚怎么弄。。
追答就是这样处理的呀~
这条语句就是先按登记号来进行排序,按你说的那个需求,可以把盒号加进去,如:
select rownum,a.* from a a where a.盒号='C-410727-0020' order by a.登记号 asc然后呢,以这个表为依据,用游标把这个表的记录一条一条的取出来。
for c in (select * from (select rownum,a.* from a a order by a.登记号 asc))最后使用LOOP循环来进行一条一条的来修改数据。
这就是整个流程了!
游标不太清楚的话,你可以直接把语句复制进去执行就行了,如是结果不对,直接rollback回去也是可以的。