-
- Type Parameters:
R
- The record type being returned by this query
- All Superinterfaces:
Attachable
,AutoCloseable
,FieldLike
,Flow.Publisher<R>
,Iterable<R>
,org.reactivestreams.Publisher<R>
,Query
,QueryPart
,ResultQuery<R>
,Serializable
,Statement
,TableLike<R>
- All Known Subinterfaces:
SelectConditionStep<R>
,SelectConnectByAfterStartWithConditionStep<R>
,SelectConnectByConditionStep<R>
,SelectConnectByStep<R>
,SelectDistinctOnStep<R>
,SelectFinalStep<R>
,SelectForUpdateOfStep<R>
,SelectForUpdateStep<R>
,SelectForUpdateWaitStep<R>
,SelectFromStep<R>
,SelectGroupByStep<R>
,SelectHavingConditionStep<R>
,SelectHavingStep<R>
,SelectIntoStep<R>
,SelectJoinStep<R>
,SelectLimitAfterOffsetStep<R>
,SelectLimitPercentAfterOffsetStep<R>
,SelectLimitPercentStep<R>
,SelectLimitStep<R>
,SelectOffsetStep<R>
,SelectOnConditionStep<R>
,SelectOptionalOnStep<R>
,SelectOptionStep<R>
,SelectOrderByStep<R>
,SelectQualifyConditionStep<R>
,SelectQualifyStep<R>
,SelectQuery<R>
,SelectSeekLimitStep<R>
,SelectSeekStep1<R,T1>
,SelectSeekStep10<R,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>
,SelectSeekStep11<R,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11>
,SelectSeekStep12<R,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12>
,SelectSeekStep13<R,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13>
,SelectSeekStep14<R,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14>
,SelectSeekStep15<R,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15>
,SelectSeekStep16<R,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16>
,SelectSeekStep17<R,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17>
,SelectSeekStep18<R,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18>
,SelectSeekStep19<R,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19>
,SelectSeekStep2<R,T1,T2>
,SelectSeekStep20<R,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20>
,SelectSeekStep21<R,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21>
,SelectSeekStep22<R,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22>
,SelectSeekStep3<R,T1,T2,T3>
,SelectSeekStep4<R,T1,T2,T3,T4>
,SelectSeekStep5<R,T1,T2,T3,T4,T5>
,SelectSeekStep6<R,T1,T2,T3,T4,T5,T6>
,SelectSeekStep7<R,T1,T2,T3,T4,T5,T6,T7>
,SelectSeekStep8<R,T1,T2,T3,T4,T5,T6,T7,T8>
,SelectSeekStep9<R,T1,T2,T3,T4,T5,T6,T7,T8,T9>
,SelectSeekStepN<R>
,SelectSelectStep<R>
,SelectStartWithStep<R>
,SelectUnionStep<R>
,SelectWhereStep<R>
,SelectWindowStep<R>
,SelectWithTiesAfterOffsetStep<R>
,SelectWithTiesStep<R>
public interface Select<R extends Record> extends ResultQuery<R>, TableLike<R>, FieldLike
ASELECT
statement.Example:
// Assuming import static org.jooq.impl.DSL.*; using(configuration) .select(ACTOR.FIRST_NAME, ACTOR.LAST_NAME) .from(ACTOR) .fetch();
Instances can be created using
DSL.select(SelectFieldOrAsterisk...)
, orDSLContext.selectQuery()
and overloads.- Author:
- Lukas Eder
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description Select<R>
except(Select<? extends R> select)
Apply theEXCEPT
(orMINUS
) set operation.Select<R>
exceptAll(Select<? extends R> select)
Apply theEXCEPT ALL
set operation.int
fetchCount()
Deprecated.- 3.5.0 - [#3356] - This method is being removed as it is confusingly different from all the other types ofResultQuery.fetch()
methods, in that it modifies the originalSelect
statement by wrapping it.List<Field<?>>
getSelect()
All fields selected in this querySelect<R>
intersect(Select<? extends R> select)
Apply theINTERSECT
set operation.Select<R>
intersectAll(Select<? extends R> select)
Apply theINTERSECT ALL
set operation.Select<R>
union(Select<? extends R> select)
Apply theUNION
set operation.Select<R>
unionAll(Select<? extends R> select)
Apply theUNION ALL
set operation.-
Methods inherited from interface org.jooq.Attachable
attach, configuration, detach
-
Methods inherited from interface java.util.concurrent.Flow.Publisher
subscribe
-
Methods inherited from interface org.jooq.Query
cancel, close, execute, executeAsync, executeAsync, getBindValues, getParam, getParams, getSQL, getSQL, getSQL, isExecutable
-
Methods inherited from interface org.jooq.ResultQuery
bind, bind, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, collect, fetch, fetch, fetch, fetch, fetch, fetch, fetch, fetch, fetch, fetch, fetch, fetch, fetch, fetch, fetchAny, fetchAny, fetchAny, fetchAny, fetchAny, fetchAny, fetchAny, fetchAny, fetchAny, fetchAny, fetchAny, fetchAny, fetchAny, fetchAny, fetchAnyArray, fetchAnyInto, fetchAnyInto, fetchAnyMap, fetchArray, fetchArray, fetchArray, fetchArray, fetchArray, fetchArray, fetchArray, fetchArray, fetchArray, fetchArray, fetchArray, fetchArray, fetchArray, fetchArrays, fetchAsync, fetchAsync, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchInto, fetchInto, fetchInto, fetchLater, fetchLater, fetchLazy, fetchLazy, fetchMany, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMaps, fetchOne, fetchOne, fetchOne, fetchOne, fetchOne, fetchOne, fetchOne, fetchOne, fetchOne, fetchOne, fetchOne, fetchOne, fetchOne, fetchOne, fetchOneArray, fetchOneInto, fetchOneInto, fetchOneMap, fetchOptional, fetchOptional, fetchOptional, fetchOptional, fetchOptional, fetchOptional, fetchOptional, fetchOptional, fetchOptional, fetchOptional, fetchOptional, fetchOptional, fetchOptional, fetchOptional, fetchOptionalArray, fetchOptionalInto, fetchOptionalInto, fetchOptionalMap, fetchResultSet, fetchSet, fetchSet, fetchSet, fetchSet, fetchSet, fetchSet, fetchSet, fetchSet, fetchSet, fetchSet, fetchSet, fetchSet, fetchSet, fetchSingle, fetchSingle, fetchSingle, fetchSingle, fetchSingle, fetchSingle, fetchSingle, fetchSingle, fetchSingle, fetchSingle, fetchSingle, fetchSingle, fetchSingle, fetchSingle, fetchSingleArray, fetchSingleInto, fetchSingleInto, fetchSingleMap, fetchSize, fetchStream, fetchStreamInto, fetchStreamInto, forEach, getRecordType, getResult, intern, intern, intern, intern, iterator, keepStatement, maxRows, poolable, queryTimeout, resultSetConcurrency, resultSetHoldability, resultSetType, spliterator, stream
-
-
-
-
Method Detail
-
union
@Support Select<R> union(Select<? extends R> select)
Apply theUNION
set operation.- Throws:
IllegalArgumentException
- If the argument select has the same identity as this select. The jOOQ 3.x API is mutable, which means that calls to the DSL API mutate this instance. Adding this instance as an set operation argument would lead to aStackOverflowError
when generating the SQL.
-
unionAll
@Support Select<R> unionAll(Select<? extends R> select)
Apply theUNION ALL
set operation.- Throws:
IllegalArgumentException
- If the argument select has the same identity as this select. The jOOQ 3.x API is mutable, which means that calls to the DSL API mutate this instance. Adding this instance as an set operation argument would lead to aStackOverflowError
when generating the SQL.
-
except
@Support({ASE,AURORA_POSTGRES,COCKROACHDB,CUBRID,DB2,DERBY,H2,HANA,HSQLDB,INFORMIX,INGRES,MARIADB_10_3,MEMSQL,ORACLE,POSTGRES,SQLDATAWAREHOUSE,SQLITE,SQLSERVER,SYBASE,TERADATA,VERTICA}) Select<R> except(Select<? extends R> select)
Apply theEXCEPT
(orMINUS
) set operation.- Throws:
IllegalArgumentException
- If the argument select has the same identity as this select. The jOOQ 3.x API is mutable, which means that calls to the DSL API mutate this instance. Adding this instance as an set operation argument would lead to aStackOverflowError
when generating the SQL.
-
exceptAll
@Support({AURORA_POSTGRES,COCKROACHDB,CUBRID,DB2,DERBY,HSQLDB,POSTGRES,TERADATA}) Select<R> exceptAll(Select<? extends R> select)
Apply theEXCEPT ALL
set operation.- Throws:
IllegalArgumentException
- If the argument select has the same identity as this select. The jOOQ 3.x API is mutable, which means that calls to the DSL API mutate this instance. Adding this instance as an set operation argument would lead to aStackOverflowError
when generating the SQL.
-
intersect
@Support({ASE,AURORA_POSTGRES,COCKROACHDB,CUBRID,DB2,DERBY,H2,HANA,HSQLDB,INFORMIX,INGRES,MARIADB_10_3,MEMSQL,ORACLE,POSTGRES,SQLDATAWAREHOUSE,SQLITE,SQLSERVER,SYBASE,TERADATA,VERTICA}) Select<R> intersect(Select<? extends R> select)
Apply theINTERSECT
set operation.- Throws:
IllegalArgumentException
- If the argument select has the same identity as this select. The jOOQ 3.x API is mutable, which means that calls to the DSL API mutate this instance. Adding this instance as an set operation argument would lead to aStackOverflowError
when generating the SQL.
-
intersectAll
@Support({AURORA_POSTGRES,COCKROACHDB,CUBRID,DB2,DERBY,HSQLDB,POSTGRES,TERADATA}) Select<R> intersectAll(Select<? extends R> select)
Apply theINTERSECT ALL
set operation.- Throws:
IllegalArgumentException
- If the argument select has the same identity as this select. The jOOQ 3.x API is mutable, which means that calls to the DSL API mutate this instance. Adding this instance as an set operation argument would lead to aStackOverflowError
when generating the SQL.
-
fetchCount
@Deprecated int fetchCount() throws DataAccessException
Deprecated.- 3.5.0 - [#3356] - This method is being removed as it is confusingly different from all the other types ofResultQuery.fetch()
methods, in that it modifies the originalSelect
statement by wrapping it. In particular, this method can be easily confused withResultQuery.fetch(Field)
, or more concretelyfetch(count())
, which has an entirely different semantics. UseDSLContext.fetchCount(Select)
instead.Execute this query in the context of its attached executor and return aCOUNT(*)
value.This wraps a pre-existing
SELECT
query in another one to calculate theCOUNT(*)
value, without modifying the originalSELECT
. An example:
This is particularly useful for those databases that do not support the-- Original query: SELECT id, title FROM book WHERE title LIKE '%a%' -- Wrapped query: SELECT count(*) FROM ( SELECT id, title FROM book WHERE title LIKE '%a%' )
COUNT(*) OVER()
window function to calculate total results in paged queries.- Returns:
- The
COUNT(*)
result - Throws:
DataAccessException
- if something went wrong executing the query
-
-