对时间和一个流水号排序得到的语句为
select * from sms where state=0 and type=0 order by riqi,n
riqi为日期,N为随机的流水号,同一日期的N越小越靠前.
通过上面的方面可以得到一个按记录加入时间先后排序的记录集.
现在通过ADO方式想只取得这个记录集的第一条,已知的语句为
select * from (select * from sms where state=0 and type=0 order by riqi,n)
   where rownum=1
问题是这样需要把排序的记录全部列一遍然后取第一条,如果全部记录很多的时间效率会低,问有什么好办法,效率高一样.

解决方案 »

  1.   

    select top 1 * from sms where state=0 and type=0 order by riqi,n
      

  2.   

    首先,把RECORDSET设为快照类型(单向只能向后翻,并且只能读不能改的那种)
    然后,我记得SQL语句可以设定返回多少条记录的数量的,只要指定只返回1条记录就可以了这两个方法结合起来,就是最快的了
      

  3.   

    不好意思,忘记指定返回记录数量的SQL语句了,偶SQL不熟,每次写这个都要GOOGLE半天的,因此楼主只能自己找了