SELECT TOP 10 * FROM 
    ( SELECT TOP 30 * FROM 表 ) A ORDER BY ID

解决方案 »

  1.   

    SELECT TOP 10 * FROM  
        ( SELECT TOP 40 * FROM 表 ORDER BY ID desc) t
      

  2.   

    通过ID,查询当前第30-40条记录 
    注意,ID不是顺序的前後會不會矛盾了?
      

  3.   


    用临时表吧。
    select pid=identity(int,1,1),* into #temp from a
    1、select top 10 * from #temp where id not in (select top 30 id from #temp order by id) order by id
    2、select top 10 * from (select top 40 * from #temp order by id)a order by id desc
      

  4.   

    不好意思,上面敲错了。应该把所有id改为pid
      

  5.   

    问下楼上,用的那个写SQL CODE的工具是什么?好像很多人用哈,怎么我不知道的
      

  6.   

    select top 10 * from (select top 40 * from table1 order by id) t order by id desc
      

  7.   

    如果是SQL 2005, 用CTE最简单.With X as
    ( Select *, row_number() over(order by ID) as rowNum
    From 表
    )
    select * from X 
    where rowNum between 30 and 40
      

  8.   

    select top 40 * into #t from table1;
    set rowcount 30
    delete from #t;
    set rowcount 0
    select * from #t