如何限制PostgreSQL SELECT中的行

时间:2009-07-15 20:48:04

标签: sql postgresql sql-limit

在PostgreSQL中,SQL Server的TOP或DB2的FETCH FIRST或mySQL的LIMIT等同于什么?

5 个答案:

答案 0 :(得分:62)

您可以像使用MySQL一样使用LIMIT,例如:

SELECT * FROM users LIMIT 5;

答案 1 :(得分:15)

您始终可以添加OFFSET子句和LIMIT子句。

您可能需要从特定偏移量中选取一组记录。这是一个从第3个位置开始获取3条记录的例子:

testdb=# SELECT * FROM COMPANY LIMIT 3 OFFSET 2;

这会产生以下结果:

 id | name  | age | address   | salary
----+-------+-----+-----------+--------
  3 | Teddy |  23 | Norway    |  20000
  4 | Mark  |  25 | Rich-Mond |  65000
  5 | David |  27 | Texas     |  85000

完整说明和更多示例检查HERE

答案 2 :(得分:4)

使用LIMIT子句。

答案 3 :(得分:2)

在PostgreSQL上,有两种方法可以实现这一目标。

SQL标准

第一种选择是使用SQL:2008标准方法,通过FETCH FIRST N ROWS ONLY语法限制结果集:

SELECT
    title
FROM
    post
ORDER BY
    id DESC
FETCH FIRST 50 ROWS ONLY
  

从PostgreSQL 8.4开始支持SQL:2008标准语法。

PostgreSQL 8.3或更早版本

对于PostgreSQL 8.3或更早版本,您需要使用LIMIT子句来限制结果集的大小:

SELECT
    title
FROM
    post
ORDER BY
    id DESC
LIMIT 50

有关此主题的更多详细信息,请查看this article

答案 4 :(得分:1)

除了限制之外,你也可以使用Fetch First。你的问题已经有了答案

Select * from users FETCH FIRST 5 ROWS ONLY