Подтвердить что ты не робот

Как ограничить строки в PostgreSQL SELECT

Что эквивалентно SQL Server TOP или DB2 FETCH FIRST или mySQL LIMIT в PostgreSQL?

4b9b3361

Ответ 1

Вы можете использовать LIMIT так же, как в MySQL, например:

SELECT * FROM users LIMIT 5;

Ответ 2

Вы всегда можете добавить предложение 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

Полное объяснение и другие примеры проверьте ЗДЕСЬ

Ответ 3

Используйте LIMIT.

Ответ 4

Помимо предела, вы также можете использовать Fetch First. У вашего вопроса уже был ответ

Select * from users FETCH FIRST 5 ROWS ONLY

Ответ 5

В PostgreSQL есть два способа достижения этой цели.

Стандарт SQL

Первый вариант - использовать стандартный способ ограничения набора результатов SQL: 2008 с помощью синтаксиса FETCH FIRST N ROWS ONLY:

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

Стандартный синтаксис SQL: 2008 поддерживается начиная с PostgreSQL 8.4.

PostgreSQL 8.3 или старше

Для PostgreSQL 8.3 или более ранних версий вам нужно использовать предложение LIMIT, чтобы ограничить размер результирующего набора:

SELECT
    title
FROM
    post
ORDER BY
    id DESC
LIMIT 50

Подробнее об этой теме читайте в этой статье.