在SQL Server中,怎么样按照页数提取记录。比如有N多条记录,我要分成M页,每页20条记录,那如果输入当前页数P,如何写SQL得到记录?我主要是希望做到不使用ADO,使用SQL查询做出来。有没有比较高效的方法。我想先找到P页前所有记录的最后一条的ID号,然后选择比ID号以后的20条就可以了。但不知道如何找到P页前所有记录的最后一条的ID号。谢谢各位高手。

解决方案 »

  1.   

    好象MYSQL中有这样的读法,至于SQL SERVER,我没见过,呵呵
      

  2.   

    http://www.csdn.net/Develop/Read_Article.asp?Id=23001
      

  3.   

    前几期《电脑报》中的“SQL乐园”有讲,找来看一看吧!
      

  4.   

    select top 每页多少*第几页 * from A
    where A.主键 not in (select top 每页多少*(第几页-1) A.主键 from A  )
      

  5.   


    /////////===============================================================================Const
      Count = 1000;        //每页显示的记录的条数
      var
      Pages :  Integer;    //当前页数
      Sum : Extended;      //所有的页数
      Captions : String;   //数据表名
      SQL : string;
      PKKEY : string;     //关键字(唯一标示字段) 
    beign
       //SQL2000
       SQL := ' Select top '  + Inttostr(Count) + ' * from ' + TableName +
             ' Where ' + PKKEY + ' Not In ( select top ' + Inttostr((Pages-1)*Count) +
             ' ' + PKKEY +  ' from ' + TableName + ')' ;
    end;