Spec-Zone.ru › MariaDB

SELECT ... OFFSET ... FETCH

MariaDB начиная с 10.6.0

SELECT ... OFFSET ... FETCH было введено в MariaDB 10.6.

Синтаксис

OFFSET start { ROW | ROWS }
FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } { ONLY | WITH TIES }

Описание

Оператор OFFSET позволяет вернуть только те элементы набора результатов, которые следуют после указанного смещения. Оператор FETCH указывает количество строк для возврата, а ONLY или WITH TIES определяет, будут ли также возвращены любые дополнительные результаты, которые находятся на последнем месте в отсортированном наборе результатов.

После операторов OFFSET и FETCH можно использовать как единственное ROW, так и множественное ROWS; выбор не влияет на результаты.

В случае WITH TIES, требуется оператор ORDER BY, в противном случае будет возвращено сообщение об ошибке.

SELECT i FROM t1 FETCH FIRST 2 ROWS WITH TIES;
ERROR 4180 (HY000): FETCH ... WITH TIES requires ORDER BY clause to be present

Примеры

Предположим, таблица содержит 6 строк:

CREATE OR REPLACE TABLE t1 (i INT);
INSERT INTO t1 VALUES (1),(2),(3),(4), (4), (5);
SELECT i FROM t1 ORDER BY i ASC;
+------+
| i    |
+------+
|    1 |
|    2 |
|    3 |
|    4 |
|    4 |
|    5 |
+------+

OFFSET 2 позволяет пропустить первые две строки.

SELECT i FROM t1 ORDER BY i ASC OFFSET 2 ROWS;
+------+
| i    |
+------+
|    3 |
|    4 |
|    4 |
|    5 |
+------+

FETCH FIRST 3 ROWS ONLY ограничивает результаты тремя строками.

SELECT i FROM t1 ORDER BY i ASC OFFSET 1 ROWS FETCH FIRST 3 ROWS ONLY;
+------+
| i    |
+------+
|    2 |
|    3 |
|    4 |
+------+

Тот же результат может быть достигнут с помощью оператора LIMIT:

SELECT i FROM t1 ORDER BY i ASC LIMIT 3 OFFSET 1;
+------+
| i    |
+------+
|    2 |
|    3 |
|    4 |
+------+

WITH TIES гарантирует, что привязанный результат 4 также будет возвращен.

SELECT i FROM t1 ORDER BY i ASC OFFSET 1 ROWS FETCH FIRST 3 ROWS WITH TIES;
+------+
| i    |
+------+
|    2 |
|    3 |
|    4 |
|    4 |
+------+

См. также

  • ORDER BY
  • SELECT
Содержимое, воспроизведённое на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проверяется предварительно компанией MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают взгляды MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/select-offset-fetch/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API