以前有人说过,sql server 2005可以有个函数可以查询一段数据出来,不知道是不是真的。例如我有的table有1000条记录,我只查询第200到300的记录,那么查询语句怎么做到呢???

解决方案 »

  1.   

    sqlserver 2005 分页
    select * from(
       select *, row=row_number() over(order by 1)
       from 你的表
    )a where row between (页号 -1) * 每页页数 + 1 and 页号 * 每页页数
      

  2.   

    http://www.microsoft.com/china/msdn/library/data/sqlserver/05TSQLEnhance.mspx?mfr=true
      

  3.   

    关键是这个row_number()
    上面有连接,讲的很清楚
    行号的一个典型应用是通过查询结果分页。给定页大小(以行数为单位)和页号,需要返回属于给定页的行。例如,假设您希望按照“score DESC, speaker”顺序从 SpeakerStats 表中返回第二页的行,并且假定页大小为三行。下面的查询首先按照指定的排序计算派生表 D 中的行数,然后只筛选行号为 4 到 6 的行(它们属于第二页):SELECT *
    FROM (SELECT ROW_NUMBER() OVER(ORDER BY score DESC, speaker) AS rownum, 
            speaker, track, score
          FROM SpeakerStats) AS D
    WHERE rownum BETWEEN 4 AND 6