提取表中头10条,头11-20,21-30条,31-40条数据按id降序

解决方案 »

  1.   


    --头10条
    select top 10 * from tablename order by id desc--头11-20
    select top 10 * from (select top 20 * from tablename order by id)order by id desc--21-30条
    select top 10 * from (select top 30 * from tablename order by id)order by id desc--31-40条
    select top 10 * from (select top 40 * from tablename order by id)order by id desc
      

  2.   

    select top 10 * from 表名 order by id descselect top 10 * from 表名 where id not in(select top 10 from 表名 order by id desc) order by id descselect top 10 * from 表名 where id not in(select top 20 from 表名 order by id desc) order by id descselect top 10 * from 表名 where id not in(select top 30 from 表名 order by id desc) order by id desc
      

  3.   

    --头10条
    select top 10 * from tablename order by id desc--头11-20
    select top 10 * from (select top 20 * from tablename order by id desc)order by id--21-30条
    select top 10 * from (select top 30 * from tablename order by id desc)order by id--31-40条
    select top 10 * from (select top 40 * from tablename order by id desc)order by id
      

  4.   

    有错--头10条
    select top 10 * from tablename order by id desc--头11-20
    select top 10 * from (select top 20 * from tablename order by id desc) as t order by id--21-30条
    select top 10 * from (select top 30 * from tablename order by id desc) as t order by id--31-40条
    select top 10 * from (select top 40 * from tablename order by id desc) as t order by id
      

  5.   

    select top 10 * from tb
    select top 10 * from tb where id>(select max(id) from (select top 10 id from tb) x)
    select top 10 * from tb where id>(select max(id) from (select top 20 id from tb) x)
    select top 10 * from tb where id>(select max(id) from (select top 30 id from tb) x)
      

  6.   

    我看还是给个表示列,
    select flag=identity(int,1,1).* into #t from T order by id desc
    然后
    select * from #t where flag between 1 and 10
    ....
      

  7.   

    -- 如果你用sql 2005就简单了SELECT * 
    FROM(
    SELECT *,
    ROW = ROW_NUMBER() OVER(ORDER BY id DESC)
    FROM sysobjects
    )A
    WHERE row BETWEEN 1 AND 10   -- 这里直接改范围
      

  8.   

    USE AdventureWorks;
    GO
    WITH OrderedOrders AS
    (SELECT SalesOrderID, OrderDate,
    ROW_NUMBER() OVER (order by OrderDate)as RowNumber
    FROM Sales.SalesOrderHeader ) 
    SELECT * 
    FROM OrderedOrders 
    WHERE RowNumber between 50 and 60;