OFFSET, clause
S’applique à : Databricks SQL 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