Top Description Methods
org.jooq

public Interface SelectOffsetStep<R extends org.jooq.Record>

extends SelectForUpdateStep<R extends Record>
Known Direct Subinterfaces
org.jooq.SelectWithTiesStep
Imports
org.jetbrains.annotations.*

This type is used for the Select's DSL API when selecting generic Record types.

Example:


-- get all authors' first and last names, and the number
-- of books they've written in German, if they have written
-- more than five books in German in the last three years
-- (from 2011), and sort those authors by last names
-- limiting results to the second and third row

  SELECT T_AUTHOR.FIRST_NAME, T_AUTHOR.LAST_NAME, COUNT(*)
    FROM T_AUTHOR
    JOIN T_BOOK ON T_AUTHOR.ID = T_BOOK.AUTHOR_ID
   WHERE T_BOOK.LANGUAGE = 'DE'
     AND T_BOOK.PUBLISHED > '2008-01-01'
GROUP BY T_AUTHOR.FIRST_NAME, T_AUTHOR.LAST_NAME
  HAVING COUNT(*) > 5
ORDER BY T_AUTHOR.LAST_NAME ASC NULLS FIRST
   LIMIT 2
  OFFSET 1
     FOR UPDATE
      OF FIRST_NAME, LAST_NAME
      NO WAIT
Its equivalent in jOOQ

create.select(TAuthor.FIRST_NAME, TAuthor.LAST_NAME, create.count())
      .from(T_AUTHOR)
      .join(T_BOOK).on(TBook.AUTHOR_ID.equal(TAuthor.ID))
      .where(TBook.LANGUAGE.equal("DE"))
      .and(TBook.PUBLISHED.greaterThan(parseDate('2008-01-01')))
      .groupBy(TAuthor.FIRST_NAME, TAuthor.LAST_NAME)
      .having(create.count().greaterThan(5))
      .orderBy(TAuthor.LAST_NAME.asc().nullsFirst())
      .limit(2)
      .offset(1)
      .forUpdate()
      .of(TAuthor.FIRST_NAME, TAuthor.LAST_NAME)
      .noWait();
Refer to the manual for more details

Referencing XYZ*Step types directly from client code

It is usually not recommended to reference any XYZ*Step types directly from client code, or assign them to local variables. When writing dynamic SQL, creating a statement's components dynamically, and passing them to the DSL API statically is usually a better choice. See the manual's section about dynamic SQL for details: https://www.jooq.org/doc/latest/manual/sql-building/dynamic-sql.

Drawbacks of referencing the XYZ*Step types directly:

Author
Lukas Eder

Method Summary

Modifier and TypeMethod and Description
public @NotNull SelectForUpdateStep<R>
offset(Number offset)

Add a 0-based OFFSET clause to the query.

public @NotNull SelectForUpdateStep<R>
offset(Field<? extends Number> offset)

Deprecated as a consequence of Field being deprecated.
Add a 0-based OFFSET clause to the query.
Inherited from org.jooq.SelectForUpdateStep:
forKeyShareforNoKeyUpdateforShareforUpdatewithCheckOptionwithReadOnly

Method Detail

offsetback to summary
public @NotNull SelectForUpdateStep<R> offset(Number offset)

Add a 0-based OFFSET clause to the query.

Offsets are 0-based as they describe the number of rows to skip.

If there is no LIMIT … OFFSET or TOP clause in your RDBMS, or if your RDBMS does not natively support offsets, this is emulated with a ROW_NUMBER() window function and nested SELECT statements.

Annotations
@NotNull
@CheckReturnValue
@Support
offsetback to summary
public @NotNull SelectForUpdateStep<R> offset(Field<? extends Number> offset)

Deprecated

as a consequence of Field being deprecated. See corresponding docs for further information.

Add a 0-based OFFSET clause to the query.

Offsets are 0-based as they describe the number of rows to skip.

If there is no LIMIT … OFFSET or TOP clause in your RDBMS, or if your RDBMS does not natively support offsets, this is emulated with a ROW_NUMBER() window function and nested SELECT statements.

Annotations
@NotNull
@CheckReturnValue
@Support