--头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
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
--头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
有错--头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
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)
我看还是给个表示列, select flag=identity(int,1,1).* into #t from T order by id desc 然后 select * from #t where flag between 1 and 10 ....
-- 如果你用sql 2005就简单了SELECT * FROM( SELECT *, ROW = ROW_NUMBER() OVER(ORDER BY id DESC) FROM sysobjects )A WHERE row BETWEEN 1 AND 10 -- 这里直接改范围
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;
--头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
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
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
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)
select flag=identity(int,1,1).* into #t from T order by id desc
然后
select * from #t where flag between 1 and 10
....
FROM(
SELECT *,
ROW = ROW_NUMBER() OVER(ORDER BY id DESC)
FROM sysobjects
)A
WHERE row BETWEEN 1 AND 10 -- 这里直接改范围
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;