在mysql中可以使用“select grade from student order by userid desc limit 2,7”查询第二条到第七条的数据,在SQLServer 2000中如何实现该功能啊?

解决方案 »

  1.   

    select top 6* from (
    select top 7 * from student order by userid desc 
    ) A
    order by  userid
      

  2.   

    select top 5 * from (select top 7 * from student order by userid) t order by userid desc
      

  3.   

    select top 7 *
    from
    (select top 9 * from tb order by userid desc)
    order by userid desc楼主,是倒数2到9条吧?
      

  4.   

    select top 6 grade from (
        select top 7 grade from student order by userid desc 
            ) A
    order by  userid
      

  5.   

    limit 2,7 不是返回第二条道第7条么
      

  6.   

    不好意思,我写反了。2005以上支持这个写法
    ;with t as
    (
      select rn=row_number()over(order by userid desc),*
      from tb
    )
    select * from t where rn between 2 and 7
      

  7.   

     取从n到m条记录的SQL语句参考:http://blog.csdn.net/htl258/archive/2009/03/18/3998522.aspx
      

  8.   

    哦错了应该是3楼的对的。limit 2,7  //返回的是从第3条数据开始的7条数据SELECT * FROM table   LIMIT [offset,] rows | rows OFFSET offset LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。 mysql> SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15