oracle更新某列为行号

1.有主键
update T a set newOrder=
(select row_number() over (order by amount desc) from T b where a.id=b.id)
where exists(select 1 from T b where a.id=b.id)

2.无主键使用rowid关联
UPDATE T a SET a.neworder =
(SELECT b.newOrder FROM
(SELECT row_number() over(ORDER BY amount DESC) newOrder,ROWID browid FROM T) b
WHERE b.browid = a.rowid)

猜你喜欢

转载自ldzyz007.iteye.com/blog/2007969
今日推荐