专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > .NET分析设计

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

发布时间:2011-06-23 20:40:00 文章来源:www.iduyao.cn 采编人员:星星草
数据库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);
------解决方案--------------------
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: