怎么去oracle中最后10条数据
谢谢 

解决方案 »

  1.   

    这要看你说的最后10条是按什么参照物了,是以某一列排序后(升序,降序)的后10列还是怎么滴?
    下面语句你参考一下把。思路是使用分析函数,然后再包一层查询就可以了。row_number函数对重复数据排序也不同
    select ename,sal, row_number() over( order by sal desc) as rank from emp;--排序,数据重复排序不同rank() over(partition by  order by )--重复记录序号跳过...对某一类型进行排序
    select deptno,ename,sal, rank() over (partition by deptno order by sal desc,comm) rank from emp;dense_rank() over(partition by  order by )--重复记录连续
    select * from (
    select deptno,ename,sal, dense_rank() over (order by sal desc) rank from emp
    ) where rank < 10 ;列出薪金水平处于第四位的雇员信息
    select ename,job,sal,deptno,rank_order from (
    select ename,job,sal,deptno,dense_rank() over(order by sal desc) rank_order from emp
    ) where rank_order=4;
      

  2.   

    最後10條  應該是按某一字段排序后的吧。select xx, row_number() over( order by xx desc) as end10 from table
      

  3.   

    先将表中的记录进行排序然后在取前面10条记录如:select * from (select rownum as num, t1.* from 表名 t1  order by num desc) where rownum <=10
      

  4.   

    5楼:按什么时间?如果是按记录插进去的时间,实际上就是ROWID的顺序。
    最晚插进去的记录,ROWID最大。
    所以4楼的写法,我认为是对的。