Klauzula OFFSET
Dotyczy: Databricks SQL Warehouse w wersji 2022.35 lub nowszej
Databricks Runtime 11.2 lub nowsze
Pomija liczbę wierszy zwracanych przez instrukcję lub podquery.
Ta klauzula jest najczęściej używana w połączeniu z limitem , aby stronicować zestaw wyników i ORDER BY
wygenerować wynik deterministyczny.
Uwaga
Podczas stronicowania za pomocą zestawu wyników i LIMIT
OFFSET
pominięte wiersze są nadal przetwarzane.
Te wiersze są po prostu pomijane z zestawu wyników.
Stronicowanie przy użyciu tej techniki nie jest zalecane w przypadku zapytań intensywnie korzystających z zasobów.
Składnia
OFFSET integer_expression
Parametry
Integer_expression
Wyrażenie literału dodatniego zwracające liczbę całkowitą.
Przykłady
> 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