Q
Problem solve Get help with specific problems with your technologies, process and projects.

# FIRST N rows, TOP N rows, LAST N rows, BOTTOM N rows...

Question 1:

I'm using MS access 2000 to write a small app for a friend. I need to display the first 'X' number of rows in a query based on a number the users enters. Can you help?

Question 2:

Is there a way to restrict the number of rows that are returned from a select query? My select query comes back with 30,000 rows, and I just want the first 300. Please let me know if (and how) this is possible.

Question 3:

How can I retrieve only a specific number of LAST FEW records from the database using SQL? For example I have 2000 records in the database. I need to get only 100 records from the bottom of the database based on specific field.

This type of question gets asked all the time. Perhaps if we answer it again, using "FIRST N rows, TOP N rows, LAST N rows, BOTTOM N rows..." to describe the problem, it will be easier to find when you search the site.

First, we must establish one important fact:

 There is no order in a relational table! There is no first row, or last row. Rows are stored in no particular sequence, so if you want the first ten, or the last ten, the question only makes sense if you phrase it in terms of the values of a particular column.

That having been said, it is indeed possible for a table to have a sequence, but only if a clustering index has been defined, so that the rows are stored by the value of the index column, most of the time (physical sequence is not guaranteed, but logical sequence is). If you want a result set in a specific sequence, you are nevertheless still urged to rely on the ORDER BY clause.

If you are using Microsoft SQL Server or Access, use the TOP keyword and an ORDER BY clause, like this --

``` select top 10 foo , bar from yourtable order by foo desc
```

In this example, you will get the rows that have the highest ten foo values, because the ORDER BY sorts the rows into descending sequence, so the highest come first. If you want the bottom ten instead, don't code BOTTOM instead of TOP (because there's no such keyword as BOTTOM), just use ASC instead of DESC in the ORDER BY.

If you are using MySQL or PostgreSQL, use the LIMIT keyword and an ORDER BY clause, like this --

``` select foo , bar from yourtable order by foo desc limit 10
```

Again, if you want the bottom ten, use ASC in the ORDER BY.

If you are using DB2, use the FETCH FIRST clause, as explained in Last N rows in DB2 (3 October 2002).

If you are using Oracle, you can use a special trick to get row numbers --

``` select * from ( select foo , bar from yourtable order by foo desc ) where rownum <= 10
```

Finally, if you are using none of the above, try the generic top 10 query:

``` select foo , bar from yourtable X where ( select count(*) from yourtable where foo > X.foo ) < 10
```

You will notice that there is no ORDER BY clause. Nevertheless, sequencing on the foo column is assumed, as you can see in the subquery. The subquery counts the number of rows that have a foo value that is greater than the one under consideration in the outer query; if that count is less than ten, then the row under consideration must be in the top ten. To get the bottom ten, reverse the inequality in the subquery.

This was last published in November 2002

## Content

Find more PRO+ content and other member only offers, here.

#### Have a question for an expert?

Get answers from a TechTarget expert on whatever's puzzling you.

You will be able to add details on the next page.

#### Join the conversation

Send me notifications when other members comment.
Good explaination. Thanks it helped.
Cancel
How do i select to 10 % of any result set?
I wasnt to write a case statement that would say if the record is in top 10 % then assign 0-10, 11-20, 21-30 ..so on ..
Cancel

## SearchDataManagement

• ### NewSQL databases rise anew -- MemSQL, Spanner among contenders

The NewSQL database was almost hidden when Hadoop and NoSQL arose. Now, as more big data teams move toward production uses, ...

• ### Good data quality for analytics becomes an IT imperative

High-quality data is a must for analytics applications. That's driving more demand for data quality tools, but quality ...

• ### Data quality for big data should include a focus on usability

To help make big data analytics applications more effective, IT teams need to augment conventional data quality processes with ...

• ### Tableau data governance policies key to enterprise use

Data governance policies are key to effectively implementing Tableau and avoiding common pitfalls that can often affect ...

• ### Better Tableau implementation gives BI dashboards a boost

Building good Tableau dashboards is about more than just pretty visualizations. Users say the process should incorporate strong ...

• ### Tableau data visualization tool gets enterprise upgrade

Tableau is adding low-level capabilities to raise its software's standing above that of a data visualization tool for business ...

## SearchSAP

• ### SAP boosts data integration with SAP Data Hub and Vora

SAP Data Hub and Vora are both data integration tools, but Data Hub has a broad mission to manage data from different sources, ...

• ### User experience analytics tool helps Graybar improve support

Electric supply firm Graybar improved help desk operations and app performance for its SAP Suite on HANA system when it got the ...

• ### SAP promotes blockchain services, suggests IoT use cases

Blockchain use cases for business are still limited, but SAP believes the new SAP Leonardo Blockchain Co-innovation program will ...

## SearchSQLServer

• ### Dissect the SQL Server on Linux high availability features

SQL Server 2017 on Linux gives IT shops greater flexibility, but there are some limitations and changes to the way high ...

• ### Microsoft SQL Server 2017 for Linux hits GA, IT pros encouraged

Microsoft SQL Server 2017 becomes available in October. In addition to a version that runs on Linux, new features include support...

• ### SQL Server graph database tools map out data relationships

Get equipped to take advantage of the addition of graph database features in SQL Server 2017 to use graph structures to represent...

## TheServerSide.com

• ### Migrations to Oracle's Java SE 9 platform may be delayed

Oracle did a great job getting Java SE 9 released earlier this year, but modularity and various smaller updates may not be enough...

• ### Java 18.3 marks the future of Java at JavaOne 2017

At JavaOne 2017, Oracle identified four projects that will have a significant impact on the future of Java: Project Valhalla, ...

• ### How blockchain security is driving digital transformations

Whether it is a secure cloud, a secure mobile device or a secure IOT interaction, organizations are making blockchain security a ...

## SearchDataCenter

• ### Words to go: HCI platforms

Implementing HCI systems in the data center is a big undertaking for IT. Learn the basics of this emerging technology and its ...

• ### Software-defined memory trends yield speed, high performance

A new class of memory technologies is coming to the data center landscape. Educate yourself on the emerging tech, including tools...

• ### Explore uses for virtual data center architecture with VMC on AWS

The popularity of a virtual data center has risen because of the VMware Cloud on AWS announcement at VMworld 2017. But which ...

## SearchContentManagement

• ### Slack vs. Teams vs. Spark: Which is the best collaboration tool?

Ever wonder how the leading cloud collaboration tools stack up against each other? Our comprehensive chart pits platforms from ...

• ### Experts: Updating customer digital experience is a tall task

Gone are the days of a quick website launch. According to speakers at the Acquia Engage conference, redesigning a website is now ...

• ### Content personalization fuses marketing automation, content management

As the standards get higher for digital experiences, content personalization engines could be the answer for faster and better ...

## SearchFinancialApplications

• ### Finance IT case study: Reporting secrets of Derek Rose

CEO Sacha Rose says specialist reporting tools have saved the company thousands by avoiding unnecessary mistakes.

• ### WestJet turns to gamification to help its Oracle ERP users soar

WestJet's initial gamification project focuses on expense reporting.

• ### The Transformation of HR is Underway

HR is being transformed while we watch.

Close