How to limit rows in PostgreSQL SELECT

前端 未结 5 952
盖世英雄少女心
盖世英雄少女心 2021-02-06 20:21

What\'s the equivalent to SQL Server\'s TOP or DB2\'s FETCH FIRST or mySQL\'s LIMIT in PostgreSQL?

相关标签:
5条回答
  • 2021-02-06 20:51

    On PostgreSQL, there are two ways to achieve this goal.

    SQL Standard

    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.

    PostgreSQL 8.3 or older

    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
    
    0 讨论(0)
  • 2021-02-06 21:00

    Use the LIMIT clause or FETCH FIRST 10 ROWS

    0 讨论(0)
  • 2021-02-06 21:05

    Apart from limit you could use Fetch First as well. Your question already had the answer

    Select * from users FETCH FIRST 5 ROWS ONLY
    
    0 讨论(0)
  • 2021-02-06 21:09

    You can use LIMIT just like in MySQL, for example:

    SELECT * FROM users LIMIT 5;
    
    0 讨论(0)
  • 2021-02-06 21:09

    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

    0 讨论(0)
提交回复
热议问题