oracle按照某一列数值排序,并将排序的名次保存到另一个字段
如图所示:想将按照bonus字段排序的结果,将ranging字段赋值1,2,3(如图中红色字体)求如何实现,在线等急急急...
如图所示:想将按照 bonus 字段排序的结果,将ranging字段赋值1,2,3(如图中红色字体)求如何实现,在线等急急急
展开
2个回答
展开全部
select rownum no,* from 表名 order by bonus desc;
Oracle的rownum与rowid区别:
ROWNUM是对结果集加的一个伪列,即先查到结果集之后再加上去的一个列 (强调:先要有结果集)。简单的说 rownum 是对符合条件结果的序列号。它总是从1开始排起的。所以你选出的结果不可能没有1,而有其他大于1的值;参考:http://tenn.iteye.com/blog/99339
rowid 与 rownum 虽都被称为伪列,但它们的存在方式是不一样的,rowid 可以说是物理存在的,表示记录在表空间中的唯一位置ID,在DB中唯一。只要记录没被搬动过,rowid是不变的。rowid 相对于表来说又像表中的一般列,所以以 rowid 为条件就不会有 rownum那些情况发生
追问
能不能将ROWNUM 出来的1,2,3 这些值改为其他值,比如2,2,1
追答
给你一个思路吧。
select aa.*,bb.rownum from SL_EXC aa left join (select只查bonus和rownum,并去除重复项) bb on aa.bonus=bb.bonus
如果rownum不对就先去除重复项再查rownum
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询