假设一次查询有很多记录,我只想这个查询结果集里面的最后一条记录,该怎么写SQL语句?

解决方案 »

  1.   

    select max(rowid) from 结果集
      

  2.   

    用max(rownum)比较合适吧
    max(rowid)适于于没有排序的,有排序的结果集,rowid最大的不等于排序后的最后条结果
      

  3.   

    如果你按照某个字段排过序 以上不适用假如你用id按升序排序,然后你想从这个结果集中取最后一条,你就按降序排列,然后用rownum = 1取第一条就ok了
      

  4.   

    同意楼上想法,排序换个方式就变成求第1条记录了
    只需要写rownm=1就可以了
      

  5.   

    ORDER BY COLUMN DESC 或者 ORDER BY COLUMN 
    然后ROWNUM=1
      

  6.   

    是啊,先DESC排序再用rownum=1 比较好做
      

  7.   

    使用rownum = 1的思路可以,但是有问题。
    为什么错,只有你自己亲自去执行这些SQL语句看结果才知道原因。select * from SaleTable
    where Enddate < to_date('2008-03-10','yyyy-mm-dd')
    and Rownum = 1
    order by EndDate desc----------------------------------------
    假设SaleTable 有如下记录2008-02-01   S1
    2008-02-03   S2
    2008-03-01   S3
    2008-03-09   S4执行上面的语句得到的结果是:2008-02-01 S1
    而不是 2008-03-09 S4
      

  8.   

    当然不是这样查这样试试:select * from  
    (select rownum rw, EndDate as EndDate  from SaleTable order by EndDate  desc)  t
    where rw = 1 order by EndDate  
      

  9.   


    select * from   
    (select rownum rw, EndDate as EndDate  from SaleTable order by EndDate  desc)  t 
    where rownum = 1 order by EndDate  这样就能得到2008-03-09 S4了