取前几个好说,取后几个一个sql就搞不定了。手动写脚本完成吧。

解决方案 »

  1.   

    这个前或者后,一定要是根据某个规则排序后的顺序,不然哪里来的前哪里来的后?后几个有什么不好做的不就 order by  asc/desc
    > id or  <  id 的数据?本质上就一翻页问题
      

  2.   

    在ORACLE中不能使用TOP,但有一个隐含行属性就是:ROWNUM。
       只要在WHERE条件中加入:ROWNUM >= 90 AND ROWNUM <= 100 就可以了。
       但正如上面朋友所说,如果没有一定的排序方式,取出的数据根本就没有意义。所以如果可以确定排序的列,则可以在查询的最后加上:order by子句来进行排序。
       注意ROWNUM定位时不可以使用:SELECT ROWNUM FROM tab WHERE ..来得到ROWNUM的值。
      

  3.   

    取最后十个不就简单select * from (select count(*) num,rownum rm,a.* from table a where ...order by col) where rm>=(num-10) and rm<=num;
      

  4.   

    以解决,谢谢,ITPUB里一个朋友提供的方法:
    select * from 
    (select * from xxx where id < n order by id desc) where rownum <= m;
    大家领分吧!
      

  5.   

    呵呵,没注意,原来biti_rainy(biti_rainy) 也在这里!
      

  6.   

    biti_rainy(biti_rainy)可以到
    http://expert.csdn.net/Expert/topic/1307/1307252.xml?temp=.8866388
    领取另外40分