Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / desktop / ATL

Paging in MS SQL Server 2005/2008 using ROW_NUMBER()

4.15/5 (7 votes)
21 Oct 2013CPOL 41.7K  
Paging in MS SQL Server 2005/2008 using ROW_NUMBER()

Sometimes we need to implement paging functionality in our database. We can use ROW_NUMBER() function for this purpose. ROW_NUMBER function is one of the ranking function of SQL Server. Here is an example of ROW_NUMBER -

SQL
SELECT *     FROM  (SELECT  ROW_NUMBER() OVER(ORDER BY EmpID) AS Row, 
      * FROM Employee AS tbl ) WHERE  Row >= 1 AND Row <= 10

ROW_NUMBER is used for assigning sequential numbers to the records of record-set. In the above query a sequel number is assigned to each record of the Employee table.

Here we have used following two clause -

  1. OVER clause - It is used for specifying the ordering of records before assigning the sequence to each record.
  2. ORDER clause -  In order clause we define column or columns which is used to order the records in the record-sets. In our case we have used EmpId with ORDER clause, so first each record of Employee table is first ordered  according to EmpId and then sequence number is assigned to each record.
*PARTITION clause can also be used along with OVER and ORDER clause (optional). Partition clause allows user to create some partition or sub record-sets as per the given column.

Once a sequence number is assigned to each record of the Employee table, then we can use each Row of record-set as one page.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)