oracle 不支持Top的。top是sqlserver的。
oracle中用rownum实现。
代码如下:(如果不想排序两层就够了)
select * from( 
select rownum myrownum,authorid,postnum from  
    ( 
    select authorid,postnum from bbs_authors  order by postnum desc     )) 
where myrownum between  10 and 20 

解决方案 »

  1.   

    String sql ="SELECT * FROM  (  SELECT  C.*, ROWNUM AS NUMROW  FROM  ( "
     + 你的sql语句
              +") C ) "
    + "WHERE NUMROW >0 AND NUMROW <= 10";
      

  2.   

    select * from (select  distinct username,rownum, sum(http) from PROXY_DAILY4USER_REPORT where year=" + year + "and month=" + month + " group by username order by sum(http) desc)
    where rownum<=10
      

  3.   

    select * from tablename where rownum<11
      

  4.   

    直接在where后面家上条件rownum <=10 就行了。
      

  5.   

    哦,写错了是rownum <= 10
      

  6.   

    谢谢大家,下面的我试了下面SQL,是正确的。 
    String sql ="SELECT * FROM  (  SELECT  C.*, ROWNUM AS NUMROW  FROM  ( "
     + 你的sql语句
              +") C ) "
    + "WHERE NUMROW >0 AND NUMROW <= 10";
      

  7.   

    select * from (select http,rank() over(partition by order by sum(http) desc) from yourtablename group by http
    where tk < 10 ;
      

  8.   

    呵,应该是 select * from (select http,rank() over(order by sum(http) desc) from yourtablename group by http
    where tk < 10 ;
      

  9.   

    select * from (select http,rank() over(partition by order by sum(http) desc) tk from yourtablename group by http
    where tk < 10 ;