FETCH FIRST and FETCH NEXT do exactly the same thing. The reason both exist because of the mandatory preceding OFFSET keyword. Using the word FIRST combined with OFFSET can be confusing to a human reader:

CopySELECT * 
FROM Foo
ORDER BY ID
OFFSET 5 ROWS
FETCH FIRST 5 ROWS ONLY; -- Does this mean rows 6 to 10, or 1 to 5?

Whereas:

CopySELECT * 
FROM Foo
ORDER BY ID
OFFSET 5 ROWS
FETCH NEXT 5 ROWS ONLY; -- Now it's clear!

SqlFiddle example here.

Similarly, you can use ROW and ROWS interchangeably, even if it breaks English grammar norms.

Answer from StuartLC on Stack Overflow
🌐
W3Schools
w3schools.com › sql › sql_top.asp
SQL SELECT TOP, LIMIT and FETCH FIRST
The following SQL selects the first three records from the "Customers" table, where Country is "Germany" (for SQL Server/MS Access): SELECT TOP 3 * FROM Customers WHERE Country = 'Germany'; Try it Yourself » · The following SQL shows the equivalent example for MySQL: SELECT * FROM Customers WHERE Country = 'Germany' LIMIT 3; Try it Yourself » · The following SQL shows the equivalent example for Oracle: SELECT * FROM Customers WHERE Country = 'Germany' FETCH FIRST 3 ROWS ONLY;
🌐
GeeksforGeeks
geeksforgeeks.org › sql › sql-top-limit-fetch-first-clause
SQL TOP, LIMIT, FETCH FIRST Clause - GeeksforGeeks
The LIMIT 2 clause then selects the next two rows after the skipped ones. In total, it returns rows 3 and 4 from the table. SQL FETCH FIRST clause fetches the first given number of rows from the table.
Published   November 10, 2025
Discussions

sql - What is the difference between fetch Next and fetch First in the Order By [...] OFFSET [..] FETCH [...] clause? - Stack Overflow
I executed two sample queries on AdventureWorks2016 and gave me the same result. When should I use NEXT or FIRST keyword then? select LastName + ' ' + FirstName from person.person order by LastNa... More on stackoverflow.com
🌐 stackoverflow.com
SQL - Select first 10 rows only? - Stack Overflow
Will skip the first 20 rows, and then fetch 10 rows. Supported by newer versions of Oracle, PostgreSQL, MS SQL Server, Mimer SQL, MariaDB and DB2 etc. More on stackoverflow.com
🌐 stackoverflow.com
SQL Server 'FETCH FIRST 1 ROWS ONLY' Invalid usage - Stack Overflow
I am trying to convert a Db2 query to SQL Server, I came across a construct I am not familiar with: FETCH FIRST 1 ROWS ONLY. This is the query working on db2: select * from products.series where... More on stackoverflow.com
🌐 stackoverflow.com
sql - Is there a difference between 'FETCH' and 'FETCH FIRST'? - Stack Overflow
I currently am preparing for an Oracle SQL exam. I have some test exams to try. One question was as follows: Which query will generate the required result? There were two of the possible answers, I More on stackoverflow.com
🌐 stackoverflow.com
People also ask

Q1. How to select the first 5 rows in SQL?
To select the first 5 rows in SQL, we have to run the SQL query: SELECT * FROM table_name LIMIT 5;
🌐
intellipaat.com
intellipaat.com › home › blog › sql top, limit, fetch first clause
SQL TOP, LIMIT, FETCH FIRST Clause - Intellipaat
Q3. What is ORDER BY in SQL?
SQL Order By is used to sort the data in ascending or descending order.
🌐
intellipaat.com
intellipaat.com › home › blog › sql top, limit, fetch first clause
SQL TOP, LIMIT, FETCH FIRST Clause - Intellipaat
Q4. How to remove duplicates in SQL?
To remove duplicates in SQL, we can use the DISTINCT keyword in our SELECT statement.
🌐
intellipaat.com
intellipaat.com › home › blog › sql top, limit, fetch first clause
SQL TOP, LIMIT, FETCH FIRST Clause - Intellipaat
🌐
Claris
help.claris.com › en › sql-reference › content › offset-and-fetch-first-clauses.html
OFFSET and FETCH FIRST clauses | Claris FileMaker SQL ...
If the OFFSET clause is not used in a SELECT statement, the starting row is 0. The FETCH FIRST clause specifies the number of rows to be returned, either as an unsigned integer greater than or equal to 1 or as a percentage, from the starting point indicated in the OFFSET clause.
🌐
Microsoft Learn
learn.microsoft.com › en-us › sql › t-sql › language-elements › fetch-transact-sql
FETCH (Transact-SQL) - SQL Server | Microsoft Learn
November 18, 2025 - PRIOR Returns the result row immediately preceding the current row, and decrements the current row to the row returned. If FETCH PRIOR is the first fetch against a cursor, no row is returned and the cursor is left positioned before the first row.
🌐
Programiz
programiz.com › sql › limit-top-fetch-first
SQL SELECT LIMIT, TOP, FETCH FIRST (With Examples)
Here, the SQL command selects the first 2 rows from the table. ... The FETCH FIRST n ROWS ONLY clause is used with the Oracle database system.
🌐
DbSchema
dbschema.com › blog › tutorials › sql top, limit, fetch first, and rownum explained | dbschema
SQL TOP, LIMIT, FETCH FIRST, and ROWNUM Explained | DbSchema
August 25, 2023 - In the above query, the WHERE clause filters the students whose age is greater than or equal to 21, and then the FETCH FIRST clause fetches the first two students from the filtered results. Using the wrong clause for your database: The TOP clause is specific to MS SQL Server and MS Access, the LIMIT clause is used in MySQL, PostgreSQL, and SQLite, and the FETCH FIRST clause is used in IBM DB2, Oracle, and PostgreSQL.
Find elsewhere
🌐
Actian
docs.actian.com › ingres › 10s › SQLRef › FETCH_FIRST_Clause_and_OFFSET_Clause.htm
FETCH FIRST Clause and OFFSET Clause
The OFFSET clause and FETCH FIRST clause are used to return a subset of rows from a result set.
🌐
Use The Index, Luke
use-the-index-luke.com › sql › partial-results › top-n-queries
Top-N queries: fetch only the first N rows
SELECT * FROM sales ORDER BY sale_date DESC FETCH FIRST 10 ROWS ONLY ... SQL Server provides the top clause to restrict the number of rows to be fetched.
🌐
Fernhill Software
fernhillsoftware.com › help › sql-language › fetch-first-clause.html
Fernhill SCADA SQL Fetch First Clause
fetch-first-clause ::= FETCH { FIRST | NEXT } [ row-count ] { ROW | ROWS } row-count is an optional constant integer value or parameter that is greater than or equal to one. The value sets the maximum number of rows to return in the query result. If row-count is omitted, the maximum rows returned in the query result is one. The keywords FIRST and NEXT are synonyms. The keywords ROW and ROWS are synonyms. ... To learn more about the SQL features in Fernhill SCADA.
🌐
Tech Agilist
techagilist.com › home › blog › fetch first n row only and optimize for n rows
FETCH FIRST n ROW ONLY and OPTIMIZE FOR n ROWS - Tech Agilist
December 26, 2023 - The FETCH FIRST n ROW ONLY clause is used to limit the result set of a query to a specified number of rows. It is particularly useful when you are only interested in retrieving a subset of the total records.
🌐
SQL Tutorial
sqltutorial.org › home › sql fetch
SQL FETCH
February 8, 2025 - first_name | hire_date ... sorts the employees by hired dates from latest to earliest. Second, the FETCH clause returns the first three rows....
🌐
Substack
alexanderobregon.substack.com › alexander obregon's substack › how to make a query to get the first and last row in sql
How to Make a Query to Get the First and Last Row in SQL
January 9, 2026 - If the clustered index is on order_date, or there is a nonclustered index whose leading column is order_date, the storage layout already lines up with the sort order, so the engine can reach the first row with minimal extra work. Standard SQL syntax includes FETCH FIRST for limiting rows, used by engines such as DB2, Oracle, and PostgreSQL:
🌐
Appeon
docs.appeon.com › pb2022 › connecting_to_your_database › XREF_17954_Microsoft_SQL.html
Microsoft SQL Server FETCH FIRST, FETCH PRIOR, and FETCH LAST - - Connecting to Your Database
SQL Server support the FETCH FIRST, FETCH PRIOR, and FETCH LAST statements in addition to the conventional FETCH NEXT statement.
🌐
Oracle
docs.oracle.com › javadb › 10.5.3.0 › ref › rrefsqljoffsetfetch.html
The result offset and fetch first clauses
-- Fetch the first row of T SELECT * FROM T FETCH FIRST ROW ONLY -- Sort T using column I, then fetch rows 11 through 20 of the sorted -- rows (inclusive) SELECT * FROM T ORDER BY I OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY -- Skip the first 100 rows of T -- If the table has fewer than 101 records, ...
🌐
Intellipaat
intellipaat.com › home › blog › sql top, limit, fetch first clause
SQL TOP, LIMIT, FETCH FIRST Clause - Intellipaat
February 3, 2026 - The Limit clause returns the first n number of records from the table. This command is used in databases like MySQL, PostgreSQL, and SQLite. ... The FETCH FIRST command is used in databases, including Oracle, DB2, PostgreSQL, and SQL Server (with the OFFSET-FETCH clause).