order by 對于rownum沒有影響。
所以這里必須使用子查詢。
select * from 
(
select msg_id,msg_recv_time
from sm_history
where to_char(msg_recv_time,'yyyy-mm-dd')='2003-09-06' 
order by 1 DESC
)
where rownum<4http://www.oradb.net/others/rownum_001.htm

解决方案 »

  1.   

    select * from 
    (select msg_id,msg_recv_time from sm_history
    where to_char(msg_recv_time,'yyyy-mm-dd')='2003-09-06' order by 1 DESC) 
    where rownum<=3
      

  2.   

    如果你是8.0版的数据库,先建一个带order by .. desc 的 view
    让后再select * from viewname rownum < 4
      

  3.   

    select * from )
    select msg_id,msg_recv_time
    from sm_history
    where to_char(msg_recv_time,'yyyy-mm-dd')='2003-09-06' order by 1 DESC)
    where rownum<4