在 PostgreSQL 中,什么等同于 SQLServer 的 TOP或 DB2的 FETCH FIRST或 mySQL 的 LIMIT?
TOP
FETCH FIRST
LIMIT
You can use LIMIT just like in MySQL, for example:
SELECT * FROM users LIMIT 5;
Use the LIMIT clause or FETCH FIRST 10 ROWS
FETCH FIRST 10 ROWS
You could always add the OFFSET clause along with LIMIT clause.
OFFSET
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
Apart from limit you could use Fetch First as well. Your question already had the answer
Select * from users FETCH FIRST 5 ROWS ONLY
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:
FETCH FIRST N ROWS ONLY
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