why notselect * from
(select rownum rn,m.* from tab_equip_status_monitor  m 
where m.control_site_id='63010101010201k100+002'
order by m.check_time desc) t
where t.rn=1

解决方案 »

  1.   

    select  t.* from (select m.* from tab_equip_status_monitor  m order by m.check_time desc ) t
    where
     t.control_site_id='63010101010201k100+002' and rownum=1
      

  2.   

    select  t.* from (select m.* from tab_equip_status_monitor  m where m.control_site_id='63010101010201k100+002' order by m.check_time desc ) t
    where rownum=1;
      

  3.   

    to enhydraboy(乱舞的浮尘):
    你的方法得不到我想要的记录,请看结果:(这是你的方法)
        RN SUP_CONTROL_SITE_ID CHECK_TIME EQUIP_TYPE_ID EQUIP_STATUS_ID REMARK
    1 1 63010101010201k100+002 2003-9-3 15:09:00 02 03说明:在这里,你取得的rownum是在排序前得到的,显然得不到我要的结果
    我的方法:
        ABCD RN SUP_CONTROL_SITE_ID CHECK_TIME EQUIP_TYPE_ID EQUIP_STATUS_ID REMARK
    1 1 884 63010101010201k100+002 2003-9-9 10:13:12 02 03
    说明:rn是排序前的rownum,abcd是排序后的rownum
      

  4.   

    To: bzszp(SongZip):
    你的方法通过:)
    性能亦比较好
      

  5.   

    select * from (select a.*,row_number() over(order by check_time desc) rm from tab_equip_status_monitor where control_site_id='63010101010201k100+002') where rm=1;