اعمال صفحه بندی به کمک OFFSET و FETCH در SQL Server 2012
نویسنده: فرهاد فرهمندخواه
تاریخ: ۱۳۹۱/۰۹/۱۵ ۱۶:۱۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
ORDER BY order_by_expression
[ COLLATE collation_name ]
[ ASC | DESC ]
[ ,...n ]
[ <offset_fetch> ]
<offset_fetch> ::=
{
OFFSET { integer_constant | offset_row_count_expression } { ROW | ROWS }
[
FETCH { FIRST | NEXT } {integer_constant | fetch_row_count_expression } { ROW | ROWS } ONLY
]
}
Create Table Testoffset
(BusinessEntityID int,
FirstName varchar(100) ,
LastName varchar(100)
);
Insert into Testoffset (BusinessEntityID,FirstName,LastName)
Values(1,'Ken','Sánchez')
,(2,'Terri','Duffy')
,(3,'Roberto','Tamburello')
,(4,'Rob','Walters')
,(5,'Gail','Erickson')
,(6,'Jossef','Goldberg')
,(7,'Dylan','Miller')
,(8,'Diane','Margheim')
,(9,'Gigi','Matthew')
,(10,'Michael','Raheem')
SELECT BusinessEntityID, FirstName, LastName FROM Testoffset ORDER BY BusinessEntityID OFFSET 3 ROWS FETCH First 3 ROWS only
SELECT column FROM table LIMIT 10 OFFSET 10
DECLARE @Varsort varchar(50)
DECLARE @Varsort1 varchar(50)
SET @Varsort=''
SET @Varsort1='BusinessEntityID'
SELECT BusinessEntityID, FirstName, LastName
FROM Testoffset
ORDER BY case when @Varsort='Firstname'then Firstname End ASC,
case when @Varsort1= 'BusinessEntityID'then BusinessEntityID End ASC
OFFSET 3 ROWS
FETCH First 3 ROWS only
SELECT BusinessEntityID, FirstName, LastName FROM Testoffset ORDER BY BusinessEntityID Desc,Firstname ASC OFFSET 3 ROWS FETCH First 3 ROWS only