OFFSET-sats
Gäller för: Databricks SQL Databricks Runtime 11.3 LTS och senare
Hoppar över ett antal rader som returneras av en instruktion eller underfråga.
Den här satsen används huvudsakligen i samband med LIMIT och för att bläddra sida genom en resultatuppsättning och med ORDER BY
för att skapa ett deterministiskt resultat.
Kommentar
När du går igenom en resultatuppsättning med hjälp av LIMIT
och OFFSET
bearbetas fortfarande de överhoppade raderna.
Dessa rader utelämnas bara från resultatuppsättningen.
Sidnumrering med den här tekniken rekommenderas inte för resursintensiva frågor.
Syntax
OFFSET integer_expression
Parametrar
integer_expression
Ett positivt literaluttryck som returnerar ett heltal.
Exempel
> 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