½ñÌì¶Ô·ÖÒ³Óï¾ä×öÒ»¸ö¼òµ¥µÄ×ܽᣬËûÃÇ´óͬСÒìµÄ£¬Ö»ÒªÀí½âÆäÖÐÒ»¸öÆäËûµÄ¾ÍºÜºÃÀí½âÁË¡£
¡¡¡¡
ʹÓÃ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