select * from ( select *,rid = row_number() over (order by colname desc) from tb ) temp where rid between 10 and 15 order by rid
1楼是2005以上的做法。 我来个2000以上的做法 select top (15-10+1) * from ( select top 15 * from tb order by colname desc ) as a order by colname
--SQL Server 2000 select top (5) * from ( select top 15 * from 表 order by 排序列 desc ) as a order by 排序列 desc--SQL Server 2005,2008,2008R2,2012通用方法 select * from ( select *,row_number() over (order by 排序列 desc) as id from 表 ) a where id between 10 and 15 order by id--SQL Server 2012select * from 表 order by 排序列 desc OFFSET 10 ROW FETCH NEXT 5 ROWS ONLY SQL Server 2012在分页上的语法精简的还是比较方便的
Select Top 15 * From tb Order by id Except Select Top 10 * from tb Order by id
select top (5) * from ( select top 15 * from 表 order by 排序列 desc ) as a order by 排序列 desc
select *
from (
select *,rid = row_number() over (order by colname desc)
from tb
) temp
where rid between 10 and 15
order by rid
我来个2000以上的做法
select top (15-10+1) *
from ( select top 15 * from tb order by colname desc ) as a
order by colname
--SQL Server 2000
select top (5) *
from ( select top 15 * from 表 order by 排序列 desc ) as a
order by 排序列 desc--SQL Server 2005,2008,2008R2,2012通用方法
select *
from (
select *,row_number() over (order by 排序列 desc) as id
from 表
) a
where id between 10 and 15
order by id--SQL Server 2012select * from 表 order by 排序列 desc OFFSET 10 ROW FETCH NEXT 5 ROWS ONLY
SQL Server 2012在分页上的语法精简的还是比较方便的
Order by id
Except
Select Top 10 * from tb
Order by id