OFFSET-clausule
Van toepassing op: Databricks SQL Databricks Runtime 11.3 LTS en hoger
Hiermee wordt een aantal rijen overgeslagen die worden geretourneerd door een instructie of subquery.
Deze clausule wordt meestal gebruikt in combinatie met LIMIT tot pagina door heen via een resultatenset, en ORDER BY
om een deterministisch resultaat te produceren.
Notitie
Wanneer u door een resultatenset bladert met behulp van LIMIT
en OFFSET
worden de overgeslagen rijen nog steeds verwerkt.
Deze rijen worden slechts uitgesloten van de resultatenset.
Paginering met deze techniek wordt niet geadviseerd voor resource-intensieve query's.
Syntaxis
OFFSET integer_expression
Parameters
integer_expression
Een positieve letterlijke expressie die een geheel getal retourneert.
Voorbeelden
> 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