select

abstract fun <X : Any> select(expression: NonNullExpression<X>): ConfigurableTypedSubQuery<X>
abstract fun <X : Any> select(expression: Expression<X>): ConfigurableTypedSubQuery<X?>
abstract fun <X : Entity<XID>, XID : Comparable<XID>> select(table: NonNullTable<X, XID>): ConfigurableTypedSubQuery<X>
abstract fun <X : Entity<XID>, XID : Comparable<XID>> select(table: Table<X, XID>): ConfigurableTypedSubQuery<X?>


abstract fun <X : Any> select(block: ProjectionContext.() -> Projection<X>): ConfigurableTypedSubQuery<X>

select { expr1 then expr2 then ... exprN }