select tt.num,t.* from (select rownum,id,t1.* from t1) t,(select count(1) num from t1) tt where t.id between 21 and 40;

解决方案 »

  1.   

    来晚了,50元应送给 bzszp(SongZip) 了~:)不过,阿可以再修改一下:
    SELECT T.* FROM ( SELECT ROWNUM RID,FA,FB FROM T1 ) T
    WHERE T.RID BETWEEN 1 AND 20
    UNION
    SELECT '总计',COUNT(*) FROM T1
      

  2.   

    发出去了,发现有点小问题,应当为:
    SELECT T.FA, T.FB FROM ( SELECT ROWNUM RID,FA,FB FROM T1 ) T
    WHERE T.RID BETWEEN 1 AND 20
    UNION
    SELECT '总计',COUNT(*) FROM T1
      

  3.   

    :)我提一个建议
    用union all比较好,这样取到最后正好是"总计"
      

  4.   

    select * from
    (select T1.*,rownum rm,count(1) over (order by rownum) cont from T1)
    where rm between 1 and 20 and rm<count
      

  5.   

    :)我提一个建议
    用union all比较好,这样取到最后正好是"总计"
    对!union会消除重复