OFFSET, clause

S’applique à : coche marquée oui Databricks SQL coche marquée oui Databricks Runtime 11.3 LTS et ultérieur

Ignore un nombre de lignes retournées par une instruction ou une sous-requête. Cette clause est principalement utilisée conjointement avec LIMIT pour page par le biais d’un jeu de résultats, et avec ORDER BY pour produire un résultat déterministe.

Notes

Lors de la pagination d’un jeu de résultats à l’aide de LIMIT et OFFSET, les lignes ignorées sont toujours traitées. Ces lignes sont simplement supprimées du jeu de résultats. La pagination avec cette technique n’est pas recommandée pour les requêtes gourmandes en ressources.

Syntaxe

OFFSET integer_expression

Paramètres

  • integer_expression

    Expression littérale positive qui renvoie un entier.

Exemples

> 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