Что эквивалентно SQL Server TOP
или DB2 FETCH FIRST
или mySQL LIMIT
в PostgreSQL?
Как ограничить строки в PostgreSQL SELECT
Ответ 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
Подробнее об этой теме читайте в этой статье.