oracle取出最后3条记录???DEPARTMENT_ID LAST_NAME                 EMPLOYEE_ID     EMP_ID
------------- ------------------------- ----------- ----------
           10 Whalen                            200          1
           20 Hartstein                         201          1
           78 Fay                               202          2
           30 Raphaely                          114          1
           84 Khoo                              115          2
           88 Baida                             116          3
           45 Tobias                            117          4
           44 Himuro                            118          5

解决方案 »

  1.   

    最后三条?你是按照什么排序的呢?
    --例如
    select * 
    from 
         (select DEPARTMENT_ID,LAST_NAME,LAST_NAME,
                 EMP_ID,row_number() over(order by DEPARTMENT_ID) rn)
    where rn<=3 
      

  2.   

    select * from (select rownum rn,sc.* from table sc) a where a.rn >(select count(1)-3 from table)
      

  3.   


    是按照 DEPARTMENT_ID 排序的
      

  4.   


    select DEPARTMENT_ID,LAST_NAME,EMPLOYEE_ID,EMP_ID
    from (select DEPARTMENT_ID,LAST_NAME,EMPLOYEE_ID,EMP_ID,rownum rn
    from (select DEPARTMENT_ID,LAST_NAME,EMPLOYEE_ID,EMP_ID
    from tb
    order by rowid desc))
    where rn<=3
    --or
    select DEPARTMENT_ID,LAST_NAME,EMPLOYEE_ID,EMP_ID
    from 
    (select DEPARTMENT_ID,LAST_NAME,EMPLOYEE_ID,EMP_ID,row_number() over(order by rowid desc) tn
    from tb)
    where tn<=3
      

  5.   

    select DEPARTMENT_ID,LAST_NAME,EMPLOYEE_ID,EMP_ID
    from (select DEPARTMENT_ID,LAST_NAME,EMPLOYEE_ID,EMP_ID,rownum rn
    from (select DEPARTMENT_ID,LAST_NAME,EMPLOYEE_ID,EMP_ID
    from tb
    order by DEPARTMENT_ID desc))
    where rn<=3
    --or
    select DEPARTMENT_ID,LAST_NAME,EMPLOYEE_ID,EMP_ID
    from  
    (select DEPARTMENT_ID,LAST_NAME,EMPLOYEE_ID,EMP_ID,row_number() over(order by DEPARTMENT_ID desc) tn
    from tb)
    where tn<=3
      

  6.   


    没排序条件不就是
    select * from 
    (select DEPARTMENT_ID,LAST_NAME,LAST_NAME, rownum rn from tableNasme order by rownum desc) f where rownum<=3  
      

  7.   

    LZ应该是先按照查询出来的rownum降序,然后取前三条。。
      

  8.   

    select * from  
    (select DEPARTMENT_ID,LAST_NAME,LAST_NAME, rownum rn from tableNasme order by rownum desc) f where rownum<=3   
      

  9.   

    select * from (select a.*,rownum num from table a order by rownum desc) where num>11
    用rownum倒序排序一下,然后再查出前十条记录,不就是人要的结果了吗
      

  10.   


    前十条是小于11,写错了。改::::
    select * from (select * from table order by rownum desc) where rownum<11
      

  11.   

    select * from table_name where department_id in(88,45,44);
      

  12.   

    select * from 
    (select * from tablename order by rowid desc )where rownum<4;
      

  13.   

    递归一次就可以了吧?使用countdeclare @num intselect @num=count(1) from account_tableselect * from account_table where rownum>@num-4以上语句没有经过验证,不过原理很明白吧?貌似有点错误的说