Dela via


OFFSET-sats

Gäller för:markerad ja Databricks SQL markerad ja 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 främst tillsammans med LIMIT för att bläddra igenom en resultatuppsättning och ORDER BY för att skapa ett deterministiskt resultat.

Kommentar

När du går igenom en resultatuppsättning med och LIMITOFFSET de överhoppade raderna fortfarande bearbetas. 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