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
 
 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();
 
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:
 
- They're operating on mutable implementations (as of jOOQ 3.x)
- They're less composable and not easy to get right when dynamic SQL gets complex
- They're less readable
- They might have binary incompatible changes between minor releases
- Author:
- Lukas Eder
- 
Method SummaryModifier and TypeMethodDescription@NotNull SelectConnectByAfterStartWithConditionStep<R> Add an Oracle-specificCONNECT BYclause to the query@NotNull SelectConnectByAfterStartWithConditionStep<R> Add an Oracle-specificCONNECT BYclause to the query@NotNull SelectConnectByAfterStartWithConditionStep<R> Add an Oracle-specificCONNECT BYclause to the query@NotNull SelectConnectByAfterStartWithConditionStep<R> Add an Oracle-specificCONNECT BYclause to the query@NotNull SelectConnectByAfterStartWithConditionStep<R> Add an Oracle-specificCONNECT BYclause to the query@NotNull SelectConnectByAfterStartWithConditionStep<R> Add an Oracle-specificCONNECT BYclause to the query@NotNull SelectConnectByAfterStartWithConditionStep<R> connectByNoCycle(String sql) Add an Oracle-specificCONNECT BY NOCYCLEclause to the query@NotNull SelectConnectByAfterStartWithConditionStep<R> connectByNoCycle(String sql, Object... bindings) Add an Oracle-specificCONNECT BY NOCYCLEclause to the query@NotNull SelectConnectByAfterStartWithConditionStep<R> connectByNoCycle(String sql, QueryPart... parts) Add an Oracle-specificCONNECT BY NOCYCLEclause to the query@NotNull SelectConnectByAfterStartWithConditionStep<R> connectByNoCycle(Condition condition) Add an Oracle-specificCONNECT BY NOCYCLEclause to the query@NotNull SelectConnectByAfterStartWithConditionStep<R> connectByNoCycle(Field<Boolean> condition) Add an Oracle-specificCONNECT BY NOCYCLEclause to the query@NotNull SelectConnectByAfterStartWithConditionStep<R> connectByNoCycle(SQL sql) Add an Oracle-specificCONNECT BY NOCYCLEclause to the query
- 
Method Details- 
connectBy@NotNull @CheckReturnValue @Support({CUBRID,EXASOL,INFORMIX,ORACLE,REDSHIFT,SNOWFLAKE}) @Pro @NotNull SelectConnectByAfterStartWithConditionStep<R> connectBy(Condition condition) Add an Oracle-specificCONNECT BYclause to the query
- 
connectBy@NotNull @CheckReturnValue @Support({CUBRID,EXASOL,INFORMIX,ORACLE,REDSHIFT,SNOWFLAKE}) @Pro @NotNull SelectConnectByAfterStartWithConditionStep<R> connectBy(Field<Boolean> condition) Add an Oracle-specificCONNECT BYclause to the query
- 
connectBy@NotNull @CheckReturnValue @Support({CUBRID,EXASOL,INFORMIX,ORACLE,REDSHIFT,SNOWFLAKE}) @PlainSQL @Pro @NotNull SelectConnectByAfterStartWithConditionStep<R> connectBy(SQL sql) Add an Oracle-specificCONNECT BYclause to the queryNOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses! - See Also:
 
- 
connectBy@NotNull @CheckReturnValue @Support({CUBRID,EXASOL,INFORMIX,ORACLE,REDSHIFT,SNOWFLAKE}) @PlainSQL @Pro @NotNull SelectConnectByAfterStartWithConditionStep<R> connectBy(String sql) Add an Oracle-specificCONNECT BYclause to the queryNOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses! - See Also:
 
- 
connectBy@NotNull @CheckReturnValue @Support({CUBRID,EXASOL,INFORMIX,ORACLE,REDSHIFT,SNOWFLAKE}) @PlainSQL @Pro @NotNull SelectConnectByAfterStartWithConditionStep<R> connectBy(String sql, Object... bindings) Add an Oracle-specificCONNECT BYclause to the queryNOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses! - See Also:
 
- 
connectBy@NotNull @CheckReturnValue @Support({CUBRID,EXASOL,INFORMIX,ORACLE,REDSHIFT,SNOWFLAKE}) @PlainSQL @Pro @NotNull SelectConnectByAfterStartWithConditionStep<R> connectBy(String sql, QueryPart... parts) Add an Oracle-specificCONNECT BYclause to the queryNOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses! - See Also:
 
- 
connectByNoCycle@NotNull @CheckReturnValue @Support({CUBRID,EXASOL,INFORMIX,ORACLE}) @Pro @NotNull SelectConnectByAfterStartWithConditionStep<R> connectByNoCycle(Condition condition) Add an Oracle-specificCONNECT BY NOCYCLEclause to the query
- 
connectByNoCycle@NotNull @CheckReturnValue @Support({CUBRID,EXASOL,INFORMIX,ORACLE}) @Pro @NotNull SelectConnectByAfterStartWithConditionStep<R> connectByNoCycle(Field<Boolean> condition) Add an Oracle-specificCONNECT BY NOCYCLEclause to the query
- 
connectByNoCycle@NotNull @CheckReturnValue @Support({CUBRID,EXASOL,INFORMIX,ORACLE}) @PlainSQL @Pro @NotNull SelectConnectByAfterStartWithConditionStep<R> connectByNoCycle(SQL sql) Add an Oracle-specificCONNECT BY NOCYCLEclause to the queryNOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses! - See Also:
 
- 
connectByNoCycle@NotNull @CheckReturnValue @Support({CUBRID,EXASOL,INFORMIX,ORACLE}) @PlainSQL @Pro @NotNull SelectConnectByAfterStartWithConditionStep<R> connectByNoCycle(String sql) Add an Oracle-specificCONNECT BY NOCYCLEclause to the queryNOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses! - See Also:
 
- 
connectByNoCycle@NotNull @CheckReturnValue @Support({CUBRID,EXASOL,INFORMIX,ORACLE}) @PlainSQL @Pro @NotNull SelectConnectByAfterStartWithConditionStep<R> connectByNoCycle(String sql, Object... bindings) Add an Oracle-specificCONNECT BY NOCYCLEclause to the queryNOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses! - See Also:
 
- 
connectByNoCycle@NotNull @CheckReturnValue @Support({CUBRID,EXASOL,INFORMIX,ORACLE}) @PlainSQL @Pro @NotNull SelectConnectByAfterStartWithConditionStep<R> connectByNoCycle(String sql, QueryPart... parts) Add an Oracle-specificCONNECT BY NOCYCLEclause to the queryNOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses! - See Also:
 
 
-