select 
     u.userid,u.name,u.cardid,u.ukeyid,s.fwtime 
from user_infotbl u 
join sys_userfwjltbl s 
on u.userid=s.userid
where cardid='640122197007042110' 
order by s.fwtime desc;
查询出一个结果集,我想只要第一条记录,怎么写sql

解决方案 »

  1.   

    select * from (
    select  
      u.userid,u.name,u.cardid,u.ukeyid,s.fwtime  
    from user_infotbl u  ,
     sys_userfwjltbl s  
    where u.userid=s.userid
    and cardid='640122197007042110'  
    order by s.fwtime desc)  where rownum <2;
      

  2.   

    在外层加个rownum=1或rownum<2,表示取第一条记录select *
      from (select u.userid, u.name, u.cardid, u.ukeyid, s.fwtime
              from user_infotbl u
              join sys_userfwjltbl s on u.userid = s.userid
             where cardid = '640122197007042110'
             order by s.fwtime desc)
     where rownum = 1;
      

  3.   

    如果是分组取每组第一 可以用row_number() over()函数  如果只是单独取一条 上面可以实现