我给解释一下吧,关于二楼的回答,嗯假设myorders就是一个表名吧,
select * from myorders
--数据分页,五条数据一页,在sql2005以前的版本中的方法
--取第一页的数据,
select top 5 * from myorders order by id asc
--取第二页的数据
select * from myorders
select top 5 * from myorders
where id not in
(
select top(5 *1) id from myorders order by id asc
)
order by id asc
--取第三页的数据
select top 5 * from myorders
where id not in
(
select top (5*2) id from myorders order by id asc
)
order by id asc
--======================sqlserve 2005 以后中分页的方法====================
--取第三页的数据
select * from
(
select * ,row_number() over(order by id asc) as rnumber
from myorders
)as tb
where tb.rnumber between 2*5+1 and 3*5
--取得第八页的数据
select * from
(
select * ,row_number() over(order by id asc)as rnumber
from myorders
)as tb
where tb.rnumber between 7*5+1 and 8*5
希望能够帮到你
|