一般情况下,利用:select * from + usetable +  where rownum<= + showcount * page +  minus  + select * from  + usetable +  where rownum<= + showcount * (page - 1);就可以解决。(showcount为某一段的记录的条数数量)
但是遇到含有BLOB图片数据时,以上用法出错。但是我又使用:select * from (select * from + usetable +  where rownum<= + showcount * page +  order by rownum desc) where rownum<= + showcount + order by rownum desc;来解决了此问题,但在此又遇上了一个问题,即此语句查询显示后的结果始终是倒序的,我把最后一个desc改为asc仍然是如此。望大神解决!!!

解决方案 »

  1.   

    我是弄不懂的啊……
    你那个rownum 和 order by 放一起,有啥用?
    rownum 是伪劣,select 才生成
    select usetable.* from
    (select rownum rn,usetable.* from + usetable  + where rownum<= + showcount * page ) order by rn desc
      

  2.   


    rownum是伪列,但是我那句sql语句是可以执行成功的。我是想在含有BLOB等类型的情况下实现查询数据库中的某一段的记录。鉴于查看前几条记录可以执行,我就把它倒过来,然后查前几条,我想查出的结果在显示时在换回原来的顺序。把rownum转为实例后,如果第一个select写*的话,可以用order by rn asc成功让结果顺序显示显示,但是这样多了一列;若写成select usetable.*后,会说那个表标识符无效。——求解决!!!
      

  3.   

    usetable.* 我的意思是你usetable里的所有字段。
      

  4.   


    难道需要把表里的字段一个一个写,但是我表中的字段是未知的。直接写usetable.*【usetable是表名】获取全部字段,在第一个select语句那提示那个表标识符无效,后面那个usetable.*是有用的。