SQL分页语句总结

转载地址:http://www.cnblogs.com/tylerdonet/archive/2011/06/01/2066071.html

使用top选项

  
  
select top 10 * from Orders
a where a.orderid not in ( select top 10 orderid from Orders order by orderid) order by a.orderid

  

使用max函数

这种方法的前提是有唯一值的一个列。

  
  
select top 10 * from Orders a
  where a.orderid > ( select MAX (orderid) from ( select top 10 orderid from Orders order by orderid) as orderid)
  order by orderid

  

使用row_number()

  
  
select * from ( select ROW_NUMBER() over ( order by orderid) as rownumber, * from Orders) myresult where rownumber between 10 and 20 select top 10 * from ( select ROW_NUMBER() over ( order by orderid) as rownumber, * from Orders) myresult where rownumber > 10 with OrderedResult as ( select * ,ROW_NUMBER() over ( Order by orderid) as rownumber from Orders) select * from OrderedResult where rownumber between 10 and 20

    

使用rowcount设置

  
  
begin declare @first_id varchar ( 18 ), @startrow int set rowcount 10 select @first_id = orderid from Orders order by orderid select * from Orders where orderid > @first_id order by orderid set rowcount 0 end

  

使用临时表

  
  
begin declare @pagelowerbound int declare @pageupperbound int set @pagelowerbound = 10 set @pageupperbound = 20 create table #pageindex( [ indexid ] int identity ( 1 , 1 ) not null , [ id ] varchar ( 18 )) declare @sql nvarchar ( 2000 ) set @sql = ' insert into #pageindex([id]) select top ' + CONVERT ( nvarchar , @pageupperbound ) set @sql = @sql + ' orderid from Orders ' execute sp_executesql @sql select a. * from Orders a inner join #pageindex b on a.orderid = b.id where b.indexid > @pagelowerbound order by b.indexid drop table #pageindex end

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值