首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

数据库oracle中,怎么修改列值为查询结果的行号

2012-01-05 
数据库oracle中,如何修改列值为查询结果的行号表Tab中有amount和newOrder两个select row_number() over (o

数据库oracle中,如何修改列值为查询结果的行号
表Tab中有amount和newOrder两个


select row_number() over (order by amount desc) newOrder ,t.* from Tab t


通过如上语句可以得到排序后的行号


但是如果把行号更新到对应行的字段NewOrder中呢?



求助。 


[解决办法]
如果表有主键,可以使用主键关联,如果没有,可以使用rowid来关联更新
UPDATE Tab a
SET a.neworder =
(SELECT *
FROM (SELECT row_number() over(ORDER BY amount DESC) newOrder,
ROWID browid
FROM Tab t) b
WHERE b.browid = a.rowid);

[解决办法]

[解决办法]

[解决办法]
如果表有主键,可以使用主键关联,如果没有,可以使用rowid来关联更新
UPDATE Tab a
SET a.neworder =
(SELECT *
FROM (SELECT row_number() over(ORDER BY amount DESC) newOrder,
ROWID browid
FROM Tab t) b
WHERE b.browid = a.rowid);
[解决办法]

热点排行