SQL Server Admin
T-SQL Articles

February 26, 2009

SELECT TOP N and BOTTOM N Rows Using SQL Server




If you have been looking out for a query that gives you TOP 'N' and Bottom 'N' records of a table, then check this out.

The query shown below selects the TOP 5 and BOTTOM 5 records ordered by CustomerID from the 'Customers' table of the Northwind database:


;With CTETemp


as


(


Select


CustomerID


,ROW_NUMBER() OVER (Order BY CustomerID) as TopFive


,ROW_NUMBER() OVER (Order BY CustomerID Desc) as BottomFive


FROM


Customers


)


Select CustomerID From CTETemp Where TopFive <=5 or BottomFive <=5


ORDER BY TopFive asc





Result:


Customer ID



ALFKI


ANATR


ANTON


AROUT


BERGS


WARTH


WELLI


WHITC


WILMK


WOLZA



Did you like this post?
kick it on DotNetKicks.com
subscribe via rss subscribe via e-mail
print this post follow me on twitter



 
  Feedback:

comments

2 Responses to "SELECT TOP N and BOTTOM N Rows Using SQL Server"
  1. Reza Mortazavi said...
    March 5, 2009 10:31 AM

    ROW_NUMBER() !
    which version of sql server is this?
    or
    where is the function?

  2. Suprotim Agarwal said...
    March 13, 2009 11:47 PM

    SQL Server 2005, 2008 :)

 

Copyright © 2009-2011 All Rights Reserved for SQLServerCurry.com by Suprotim Agarwal | Terms and Conditions