数据表A中有一系列的数据,数据时按插入时间先后排序的(这个不知道对不对),现要读出指定范围的n条记录
这时我原来写的,从FirstItem开始,显示MaxItem条数据,排序是按strKeyWord排的
strSqlTemp.Format(_T("SELECT * FROM (SELECT row_number() over() as rnum, %s.* FROM %s ORDER BY %s) AS T WHERE rnum >= %d AND rnum < %d "), strTable, strTable, strKeyWord, FirstItem, FirstItem+MaxItem);如何按默认的插入时间排呢?
strKeyWord要换成什么?

解决方案 »

  1.   

    select * from tb where ... order by 插入时间
      

  2.   

    表采用最简单的结构,没有插入时间
    表本身应该有个序列吧,我用ado接口随便读一个表,虽然没有对它进行排列,但是有一个表的默认排序(应该是按照插入顺序排列的),MoveNext()出来的顺序应该和Insert的顺序一致(不一定对)。我们说个具体情况吧
    student表中仅有ID,name两个字段,按一定顺序先后插入了100条记录,问能否从中取出刚才插入的从20条开始的10条记录,也就是从20到29共10个记录。
      

  3.   

    我想的一个方法
    在建一个表studenttemp(index,ID,name),index采用自动增量,把student拷贝到studenttemp中
    这回有index就可以排序了。
    不过这方法好像很差的。
      

  4.   

    我用的是ACCESS数据库, SQL里面有没有记录行号关键字啊?