What\'s the equivalent to SQL Server\'s TOP
or DB2\'s FETCH FIRST
or mySQL\'s LIMIT
in PostgreSQL?
On PostgreSQL, there are two ways to achieve this goal.
The first option is to use the SQL:2008 standard way of limiting a result set using the FETCH FIRST N ROWS ONLY syntax:
SELECT
title
FROM
post
ORDER BY
id DESC
FETCH FIRST 50 ROWS ONLY
The SQL:2008 standard syntax is supported since PostgreSQL 8.4.
For PostgreSQL 8.3 or older versions, you need the LIMIT clause to restrict the result set size:
SELECT
title
FROM
post
ORDER BY
id DESC
LIMIT 50
Use the LIMIT clause or FETCH FIRST 10 ROWS
Apart from limit you could use Fetch First as well. Your question already had the answer
Select * from users FETCH FIRST 5 ROWS ONLY
You can use LIMIT just like in MySQL, for example:
SELECT * FROM users LIMIT 5;
You could always add the OFFSET
clause along with LIMIT
clause.
You may need to pick up a set of records from a particular offset. Here is an example which picks up 3 records starting from 3rd position:
testdb=# SELECT * FROM COMPANY LIMIT 3 OFFSET 2;
This would produce the following result:
id | name | age | address | salary
----+-------+-----+-----------+--------
3 | Teddy | 23 | Norway | 20000
4 | Mark | 25 | Rich-Mond | 65000
5 | David | 27 | Texas | 85000
Full explanation and more examples check HERE