A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2013-3-26 22:34  /  1958 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我给解释一下吧,关于二楼的回答,嗯假设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

希望能够帮到你
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马