Sql

Limit postgresql: Postgres Pro Standard : Документация: 9.5: 7.6. LIMIT и OFFSET : Компания Postgres Professional

Получить подмножество строк, сгенерированных запросом

Резюме : в этом руководстве вы узнаете, как использовать предложение PostgreSQL LIMIT для получения подмножества строк, сгенерированных запросом.

Введение в PostgreSQL

Предложение LIMIT

PostgreSQL LIMIT — это необязательное предложение оператора SELECT , которое ограничивает количество строк, возвращаемых запросом.

Ниже показан синтаксис LIMIT пункт:

 

SELECT select_list ОТ имя_таблицы ORDER BY sort_expression LIMIT row_count

Язык кода: SQL (язык структурированных запросов) (sql)

Оператор возвращает row_count строк, сгенерированных запросом. Если row_count равно нулю, запрос возвращает пустой набор. В случае, если row_count равен NULL , запрос возвращает тот же набор результатов, поскольку он не содержит предложения LIMIT .

Если вы хотите пропустить несколько строк, прежде чем возвращать строки

row_count , используйте предложение OFFSET , помещенное после предложения LIMIT , в виде следующего оператора:

 

SELECT select_list ОТ имя_таблицы LIMIT row_count OFFSET row_to_skip;

Язык кода: SQL (язык структурированных запросов) (sql)

Оператор сначала пропускает row_to_skip строк, а затем возвращает row_count строк, сгенерированных запросом. Если row_to_skip равно нулю, оператор будет работать так, как будто в нем нет предложения OFFSET .

Поскольку в таблице строки могут храниться в неопределенном порядке, при использовании предложения

LIMIT всегда следует использовать предложение ORDER BY для управления порядком строк. Если вы не используете предложение ORDER BY , вы можете получить результирующий набор с неопределенным порядком строк.

PostgreSQL

LIMIT примеров

Рассмотрим несколько примеров использования PostgreSQL ОГРАНИЧЕНИЕ пункта. Для демонстрации мы будем использовать таблицу film в базе данных примера.

1) Использование PostgreSQL LIMIT для ограничения количества возвращаемых строк пример

В этом примере используется предложение LIMIT для получения первых пяти фильмов, отсортированных по film_id :

 

SELECT фильм_идентификатор, заглавие, выпуск_год ИЗ фильм СОРТИРОВАТЬ ПО film_id ПРЕДЕЛ 5;

Язык кода: SQL (язык структурированных запросов) (sql)

2) Пример использования PostgreSQL LIMIT со OFFSET

Чтобы получить 4 фильма, начиная с четвертого, упорядоченного по film_id , вы используете оба предложения LIMIT и OFFSET следующим образом:

2 900 фильм_идентификатор, заглавие, выпуск_год ИЗ фильм СОРТИРОВАТЬ ПО film_id ПРЕДЕЛ 4 СМЕЩЕНИЕ 3;

Язык кода: SQL (язык структурированных запросов) (sql)

3) Использование PostgreSQL LIMIT OFFSSET для получения верхних/нижних N строк

Как правило, вы часто используете предложение LIMIT для выбора строк с самыми высокими или самыми низкими значениями из таблицы.

Например, чтобы получить 10 самых дорогих фильмов с точки зрения проката, вы сортируете фильмы по ставке проката в порядке убывания и используете пункт LIMIT , чтобы получить первые 10 фильмов. Следующий запрос иллюстрирует эту идею:

 

SELECT фильм_идентификатор, заглавие, арендная плата ИЗ фильм СОРТИРОВАТЬ ПО rent_rate DESC ПРЕДЕЛ 10;

Язык кода: SQL (язык структурированных запросов) (sql)

Результат запроса следующий:

В этом руководстве вы узнали, как использовать предложение PostgreSQL LIMIT OFFSET для получения подмножества строк. возвращается запросом.

Было ли это руководство полезным?

sql — Как ограничить количество строк в PostgreSQL SELECT

спросил

Изменено 1 год, 9несколько месяцев назад

Просмотрено 137 тысяч раз

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

  • sql
  • postgresql
  • sql-limit

1

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

 SELECT * FROM users LIMIT 5;
 

1

Вы всегда можете добавить предложение OFFSET вместе с предложением LIMIT .

Возможно, вам потребуется выбрать набор записей из определенного смещения. Вот пример, который выбирает 3 записи, начиная с 3-й позиции:

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

Это даст следующий результат:

 id | имя | возраст | адрес | зарплата
----+-------+-----+------------+--------
  3 | Тедди | 23 | Норвегия | 20000
  4 | Марк | 25 | Рич-Монд | 65000
  5 | Дэвид | 27 | Техас | 85000
 

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

1

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

SQL Standard

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

 SELECT
    заглавие
ИЗ
    почта
СОРТИРОВАТЬ ПО
    идентификатор DESC
ВЫБЕРИТЕ ТОЛЬКО ПЕРВЫЕ 50 РЯДОВ
 

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *