Share via


OFFSET-Klausel

Gilt für:Häkchen ja Databricks SQL Häkchen Databricks Runtime 11.3 LTS und höher

Überspringt eine Reihe von Zeilen, die von einer Anweisung oder Unterabfrage zurückgegeben werden. Diese Klausel wird meist in Verbindung mit LIMIT verwendet, um ein Resultset durchzublättern und sie wird mit ORDER BY verwendet, um ein deterministisches Ergebnis zu erzeugen.

Hinweis

Beim Paging durch ein Resultset mit LIMIT und OFFSET werden die übersprungenen Zeilen weiterhin verarbeitet. Diese Zeilen werden lediglich aus dem Resultset unterdrückt. Bei ressourcenintensiven Abfragen wird von einer Paginierung mit dieser Technik abgeraten.

Syntax

OFFSET integer_expression

Parameter

  • integer_expression

    Ein positiver Literal-Ausdruck, der eine ganze Zahl zurückgibt.

Beispiele

> CREATE TEMP VIEW person (name, age)
    AS VALUES ('Zen Hui', 25),
              ('Anil B' , 18),
              ('Shone S', 16),
              ('Mike A' , 25),
              ('John A' , 18),
              ('Jack N' , 16);

-- Select the 4th and 5th rows by alphabetical order.
> SELECT name, age FROM person ORDER BY name LIMIT 2 OFFSET 3;
  Mike A  25
 Shone S  16

-- Specifying ALL option on LIMIT and an OFFSET of zero, returns all the rows.
> SELECT name, age FROM person ORDER BY name LIMIT ALL OFFSET 0;
  Anil B  18
  Jack N  16
  John A  18
  Mike A  25
 Shone S  16
 Zen Hui  25

-- A constant function expression as an input to OFFSET.
> SELECT name, age FROM person ORDER BY name OFFSET length('SPARK');
 Zen Hui  25

-- A non-literal expression as an input to OFFSET is not allowed.
> SELECT name, age FROM person ORDER BY name OFFSET length(name);
Error: The offset expression must evaluate to a constant value