我想通过TADOQuery返回一个表的最后两条记录,不知道怎么写SQL?
我用的数据库是Oracle,由于数据量太大,我不想返回所有记录。->返回所有记录select * from mytab order by rowid desc->返回最后两条记录:???
————————————————————————————
================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★  浏览帖子速度极快![建议系统使用ie5.5以上]。 ★  多种帖子实现界面。 
★  保存帖子到本地[html格式]★  监视您关注帖子的回复更新。
★  可以直接发贴、回复帖子★  采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! 
★  支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名  ●  
     可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe    [自解压]

解决方案 »

  1.   

    select top 2 ....sqlserver 支持,不知Oracle可否,你可试试
      

  2.   

    rownum =rowcount-1
    or rownum =rowcount看一下有没用?
      

  3.   

    这是cb的写法,略为修改
    Query1->Close();
    Query1->SQL->Clear();
    Query1->SQL->Add("select * from mytab order by rowid desc")
    Query1->Open();
    Query1->RecNo=Query1->RecordCount-1;//倒数第二条记录
     String str=Query1->FieldByName("myField")->AsString;
    ...
    Query1->Next();//最后一条记录
     String str1=Query1->FieldByName("myField)->AsString;
    ...
      

  4.   

    select top 2 from table2 order by id desc
    在SQL SEVER是这样的,不知道ORACLE是不是可以这样写
      

  5.   

    select top 2 * from mytab order by rowid desc
      

  6.   

    不知道有没有办法通过SQL语句直接实现这个目标?
    你们说的那些办法实际上都是先返回所有记录,再取出最后两条。
    这并不是我的本意,我需要减少网络流量,服务器只返回两条记录。
      

  7.   

    select * from mytab
     order by rowid desc
     where rownum<=2
      

  8.   

    Oracle不支持
    select top 2 from mytab这种语法,我已经试过了
      

  9.   

    query.last;
    取数;
    query.prior;
    取数;
      

  10.   

    按 rowid  升序排序的最后2条:
    select * from mytab
     order by rowid desc
     where rownum<=2按 rowid  降序排序的最后2条:
    select * from mytab
     order by rowid
     where rownum<=2
      

  11.   

    楼上的看清楚,是ROWNUM,不是rowid