SqlExpressionBuilder

Builder object for creating SQL expressions.

Functions

Link copied to clipboard
open fun <T, S : T?> ExpressionWithColumnType<S>.asLiteral(value: T): LiteralOp<T>

Returns the specified value as a literal of type T.

Link copied to clipboard
open fun <T : Comparable<T>, E : EntityID<T>?> Column<E>.between(from: T, to: T): Between

Returns true if this EntityID expression is between the values from and to, false otherwise.

open fun <T, S : T?> ExpressionWithColumnType<in S>.between(from: T, to: T): Between

Returns true if this expression is between the values from and to, false otherwise.

Link copied to clipboard
open infix fun <T> ExpressionWithColumnType<T>.bitwiseAnd(t: T): AndBitOp<T, T>

Performs a bitwise and on this expression and t.

Performs a bitwise and on this expression and expression t.

Link copied to clipboard
open infix fun <T> ExpressionWithColumnType<T>.bitwiseOr(t: T): OrBitOp<T, T>

Performs a bitwise or on this expression and t.

Performs a bitwise or on this expression and expression t.

Link copied to clipboard
open infix fun <T> ExpressionWithColumnType<T>.bitwiseXor(t: T): XorBitOp<T, T>

Performs a bitwise or on this expression and t.

Performs a bitwise or on this expression and expression t.

Link copied to clipboard
open fun case(value: Expression<*>? = null): Case

Compares value against any chained conditional expressions.

Link copied to clipboard
open fun <T, S : T?> coalesce(expr: ExpressionWithColumnType<S>, alternate: Expression<out T>, vararg others: Expression<out T>): Coalesce<T, S>

Returns the first of its arguments that is not null.

Link copied to clipboard
open fun concat(vararg expr: Expression<*>): Concat

Concatenates the text representations of all the expr.

open fun concat(separator: String = "", expr: List<Expression<*>>): Concat

Concatenates the text representations of all the expr using the specified separator.

Link copied to clipboard
open fun cumeDist(): CumeDist

Returns the cumulative distribution, that is (number of partition rows preceding or peers with current row) / (total partition rows). The value thus ranges from 1/N to 1.

Link copied to clipboard
open fun denseRank(): DenseRank

Returns the rank of the current row, without gaps; this function effectively counts peer groups.

Link copied to clipboard
open infix operator fun <T> ExpressionWithColumnType<T>.div(t: T): DivideOp<T, T>

Divides this expression by the t value.

open infix operator fun <T, S : T> ExpressionWithColumnType<T>.div(other: Expression<S>): DivideOp<T, S>

Divides this expression by the other expression.

Link copied to clipboard
open infix fun <T> CompositeColumn<T>.eq(t: T): Op<Boolean>
open infix fun <T> ExpressionWithColumnType<T>.eq(t: T): Op<Boolean>

Checks if this expression is equal to some t value.

open infix fun <T : Comparable<T>, E : EntityID<T>?, V : T?> ExpressionWithColumnType<E>.eq(t: V): Op<Boolean>

Checks if this EntityID expression is equal to some t value.

open infix fun <T : Comparable<T>, E : EntityID<T>?, V : T?> ExpressionWithColumnType<E>.eq(other: Expression<V>): Op<Boolean>

Checks if this EntityID expression is equal to some other expression.

open infix fun <T, S1 : T?, S2 : T?> Expression<in S1>.eq(other: Expression<in S2>): Op<Boolean>

Checks if this expression is equal to some other expression.

open infix fun <T : Comparable<T>, V : T?, E : EntityID<T>?> Expression<V>.eq(other: ExpressionWithColumnType<E>): Op<Boolean>

Checks if this expression is equal to some other expression.

Link copied to clipboard
open infix fun <T> Expression<T>.eqSubQuery(query: AbstractQuery<*>): EqSubQueryOp<T>

Checks if this expression is equals to single value returned from query.

Link copied to clipboard

Returns value evaluated at the row that is the first row of the window frame.

Link copied to clipboard
@JvmName(name = "greaterEntityID")
open infix fun <T : Comparable<T>> Column<EntityID<T>>.greater(t: T): GreaterOp

Checks if this EntityID expression is greater than some t value.

open infix fun <T : Comparable<T>, S : T?> ExpressionWithColumnType<in S>.greater(t: T): GreaterOp

Checks if this expression is greater than some t value.

open infix fun <T : Comparable<T>, E : EntityID<T>?, V : T?> ExpressionWithColumnType<E>.greater(other: Expression<in V>): GreaterOp

Checks if this EntityID expression is greater than some other expression.

open infix fun <T : Comparable<T>, V : T?, E : EntityID<T>?> Expression<V>.greater(other: ExpressionWithColumnType<E>): GreaterOp

Checks if this expression is greater than some other expression.

open infix fun <T : Comparable<T>, S : T?> Expression<in S>.greater(other: Expression<in S>): GreaterOp

Checks if this expression is greater than some other expression.

Link copied to clipboard
@JvmName(name = "greaterEqEntityID")
open infix fun <T : Comparable<T>> Column<EntityID<T>>.greaterEq(t: T): GreaterEqOp

Checks if this EntityID expression is greater than or equal to some t value

open infix fun <T : Comparable<T>, S : T?> ExpressionWithColumnType<in S>.greaterEq(t: T): GreaterEqOp

Checks if this expression is greater than or equal to some t value

open infix fun <T : Comparable<T>, E : EntityID<T>?, V : T?> ExpressionWithColumnType<E>.greaterEq(other: Expression<in V>): GreaterEqOp

Checks if this EntityID expression is greater than or equal to some other expression

Checks if this expression is greater than or equal to some other expression.

open infix fun <T : Comparable<T>, S : T?> Expression<in S>.greaterEq(other: Expression<in S>): GreaterEqOp

Checks if this expression is greater than or equal to some other expression

Link copied to clipboard
open infix fun <T> ExpressionWithColumnType<T>.hasFlag(t: T): EqOp

Performs a bitwise and on this expression and t.

Performs a bitwise and on this expression and expression t.

Link copied to clipboard

Checks if expressions from this Pair are equal to elements from list. This syntax is unsupported by SQL Server.

Checks if expressions from this Triple are equal to elements from list. This syntax is unsupported by SQL Server.

open infix fun List<Column<*>>.inList(list: Iterable<List<*>>): InListOrNotInListBaseOp<List<*>>

Checks if all columns in this List are equal to any of the lists of values from list.

@JvmName(name = "inListCompositeIDs")
open infix fun List<Column<*>>.inList(list: Iterable<CompositeID>): InListOrNotInListBaseOp<List<*>>

Checks if all columns in this List are equal to any of the CompositeIDs from list.

@JvmName(name = "inListIds")
open infix fun <T : Comparable<T>, ID : EntityID<T>?> Column<ID>.inList(list: Iterable<T>): InListOrNotInListBaseOp<EntityID<T>?>
@JvmName(name = "inListCompositeEntityIds")
open infix fun <ID : EntityID<CompositeID>> Column<ID>.inList(list: Iterable<CompositeID>): InListOrNotInListBaseOp<List<*>>

Checks if this EntityID column is equal to any element from list.

Checks if this expression is equal to any element from list.

Link copied to clipboard
open infix fun <T> Expression<T>.inSubQuery(query: AbstractQuery<*>): InSubQueryOp<T>

Checks if this expression is equals to any row returned from query.

Link copied to clipboard
open infix fun <T> ExpressionWithColumnType<T>.inTable(table: Table): InTableOp

Checks if this expression is equal to any element from the column of table with only a single column.

Link copied to clipboard
@JvmName(name = "isDistinctFromEntityID")
open infix fun <T : Comparable<T>> Column<EntityID<T>>.isDistinctFrom(t: T): IsDistinctFromOp

Checks if this expression is not equal to some t value, with null treated as a comparable value

Checks if this EntityID expression is not equal to some other expression

Checks if this expression is not equal to some other expression.

open infix fun <T : Comparable<T>, S : T?> Expression<in S>.isDistinctFrom(other: Expression<in S>): IsDistinctFromOp

Checks if this expression is not equal to some other expression, with null treated as a comparable value

Link copied to clipboard
@JvmName(name = "isNotDistinctFromEntityID")
open infix fun <T : Comparable<T>> Column<EntityID<T>>.isNotDistinctFrom(t: T): IsNotDistinctFromOp

Checks if this expression is equal to some t value, with null treated as a comparable value

Checks if this EntityID expression is equal to some other expression

Checks if this expression is equal to some other expression.

open infix fun <T : Comparable<T>, S : T?> Expression<in S>.isNotDistinctFrom(other: Expression<in S>): IsNotDistinctFromOp

Checks if this expression is equal to some other expression, with null treated as a comparable value

Link copied to clipboard
open fun <T> Expression<T>.isNotNull(): Op<Boolean>

Returns true if this expression is not null, false otherwise.

Link copied to clipboard
open fun <T> Expression<T>.isNull(): Op<Boolean>

Returns true if this expression is null, false otherwise.

Link copied to clipboard

Returns true if this string expression is null or empty, false otherwise.

Link copied to clipboard
open fun <T> ExpressionWithColumnType<T>.lag(offset: ExpressionWithColumnType<Int> = intLiteral(1), defaultValue: ExpressionWithColumnType<T>? = null): Lag<T>

Returns value evaluated at the row that is offset rows before the current row within the partition; if there is no such row, instead returns defaultValue. Both offset and defaultValue are evaluated with respect to the current row.

Link copied to clipboard

Returns value evaluated at the row that is the last row of the window frame.

Link copied to clipboard
open fun <T> ExpressionWithColumnType<T>.lead(offset: ExpressionWithColumnType<Int> = intLiteral(1), defaultValue: ExpressionWithColumnType<T>? = null): Lead<T>

Returns value evaluated at the row that is offset rows after the current row within the partition; if there is no such row, instead returns defaultValue. Both offset and defaultValue are evaluated with respect to the current row.

Link copied to clipboard
@JvmName(name = "lessEntityID")
open infix fun <T : Comparable<T>> Column<EntityID<T>>.less(t: T): LessOp

Checks if this EntityID expression is less than some t value.

open infix fun <T : Comparable<T>, S : T?> ExpressionWithColumnType<in S>.less(t: T): LessOp

Checks if this expression is less than some t value.

open infix fun <T : Comparable<T>, E : EntityID<T>?, V : T?> ExpressionWithColumnType<E>.less(other: Expression<in V>): LessOp

Checks if this EntityID expression is less than some other expression.

open infix fun <T : Comparable<T>, V : T?, E : EntityID<T>?> Expression<V>.less(other: ExpressionWithColumnType<E>): LessOp

Checks if this expression is less than some other expression.

open infix fun <T : Comparable<T>, S : T?> Expression<in S>.less(other: Expression<in S>): LessOp

Checks if this expression is less than some other expression.

Link copied to clipboard
@JvmName(name = "lessEqEntityID")
open infix fun <T : Comparable<T>> Column<EntityID<T>>.lessEq(t: T): LessEqOp

Checks if this EntityID expression is less than or equal to some t value

open infix fun <T : Comparable<T>, S : T?> ExpressionWithColumnType<in S>.lessEq(t: T): LessEqOp

Checks if this expression is less than or equal to some t value

open infix fun <T : Comparable<T>, E : EntityID<T>?, V : T?> ExpressionWithColumnType<E>.lessEq(other: Expression<in V>): LessEqOp

Checks if this EntityID expression is less than or equal to some other expression

open infix fun <T : Comparable<T>, V : T?, E : EntityID<T>?> Expression<V>.lessEq(other: ExpressionWithColumnType<E>): LessEqOp

Checks if this expression is less than or equal to some other expression.

open infix fun <T : Comparable<T>, S : T?> Expression<in S>.lessEq(other: Expression<in S>): LessEqOp

Checks if this expression is less than or equal to some other expression

Link copied to clipboard
open infix fun <T : String?> Expression<T>.like(pattern: String): LikeEscapeOp
open infix fun <T : String?> Expression<T>.like(pattern: LikePattern): LikeEscapeOp
@JvmName(name = "likeWithEntityID")
open infix fun Expression<EntityID<String>>.like(pattern: String): LikeEscapeOp
@JvmName(name = "likeWithEntityID")
open infix fun Expression<EntityID<String>>.like(pattern: LikePattern): LikeEscapeOp

Checks if this expression matches the specified pattern.

open infix fun <T : String?> Expression<T>.like(expression: ExpressionWithColumnType<String>): LikeEscapeOp
@JvmName(name = "likeWithEntityIDAndExpression")
open infix fun Expression<EntityID<String>>.like(expression: ExpressionWithColumnType<String>): LikeEscapeOp

Checks if this expression matches the specified expression.

Link copied to clipboard
open infix fun <T : String?> Expression<T>.match(pattern: String): Op<Boolean>

Checks if this expression matches the specified pattern.

open fun <T : String?> Expression<T>.match(pattern: String, mode: FunctionProvider.MatchMode?): Op<Boolean>

Checks if this expression matches the specified pattern using the specified match mode.

Link copied to clipboard
open infix operator fun <T> ExpressionWithColumnType<T>.minus(t: T): MinusOp<T, T>

Subtracts the t value from this expression.

open infix operator fun <T, S : T> ExpressionWithColumnType<T>.minus(other: Expression<S>): MinusOp<T, S>

Subtracts the other expression from this expression.

Link copied to clipboard
open infix fun <T : Number?, S : T> ExpressionWithColumnType<T>.mod(t: S): ModOp<T, S, T>

Calculates the remainder of dividing this expression by the t value.

open infix fun <T : Number?, S : Number> ExpressionWithColumnType<T>.mod(other: Expression<S>): ModOp<T, S, T>

Calculates the remainder of dividing this expression by the other expression.

@JvmName(name = "modWithEntityId")
open infix fun <T : Number, Comparable<T>, S : Number, ID : EntityID<T>?> ExpressionWithColumnType<ID>.mod(other: S): ExpressionWithColumnType<T>

Calculates the remainder of dividing the value of this numeric PK by the other number.

@JvmName(name = "modWithEntityId3")
open infix fun <T : Number, Comparable<T>, S : Number, ID : EntityID<T>?> ExpressionWithColumnType<ID>.mod(other: Expression<S>): ExpressionWithColumnType<T>

Calculates the remainder of dividing the value of this numeric PK by the other number expression.

@JvmName(name = "modWithEntityId2")
open infix fun <T : Number, Comparable<T>, S : Number, ID : EntityID<T>?> Expression<S>.mod(other: ExpressionWithColumnType<ID>): ExpressionWithColumnType<T>

Calculates the remainder of dividing this number expression by other numeric PK

Link copied to clipboard
open infix fun <T> ExpressionWithColumnType<T>.neq(other: T): Op<Boolean>

Checks if this expression is not equal to some other value.

open infix fun <T : Comparable<T>, E : EntityID<T>?, V : T?> ExpressionWithColumnType<E>.neq(t: V): Op<Boolean>

Checks if this EntityID expression is not equal to some t value.

open infix fun <T : Comparable<T>, E : EntityID<T>?, V : T?> ExpressionWithColumnType<E>.neq(other: Expression<V>): Op<Boolean>

Checks if this EntityID expression is not equal to some other expression.

open infix fun <T, S1 : T?, S2 : T?> Expression<in S1>.neq(other: Expression<in S2>): Op<Boolean>

Checks if this expression is not equal to some other expression.

open infix fun <T : Comparable<T>, V : T?, E : EntityID<T>?> Expression<V>.neq(other: ExpressionWithColumnType<E>): Op<Boolean>

Checks if this expression is not equal to some other expression.

Link copied to clipboard
open infix fun <T> Expression<T>.notEqSubQuery(query: AbstractQuery<*>): NotEqSubQueryOp<T>

Checks if this expression is not equals to single value returned from query.

Link copied to clipboard

Checks if expressions from this Pair are not equal to elements from list. This syntax is unsupported by SQL Server.

Checks if expressions from this Triple are not equal to elements from list. This syntax is unsupported by SQL Server.

open infix fun List<Column<*>>.notInList(list: Iterable<List<*>>): InListOrNotInListBaseOp<List<*>>

Checks if all columns in this List are not equal to any of the lists of values from list.

@JvmName(name = "notInListCompositeIDs")
open infix fun List<Column<*>>.notInList(list: Iterable<CompositeID>): InListOrNotInListBaseOp<List<*>>

Checks if all columns in this List are not equal to any of the CompositeIDs from list.

@JvmName(name = "notInListIds")
open infix fun <T : Comparable<T>, ID : EntityID<T>?> Column<ID>.notInList(list: Iterable<T>): InListOrNotInListBaseOp<EntityID<T>?>
@JvmName(name = "notInListCompositeEntityIds")
open infix fun <ID : EntityID<CompositeID>> Column<ID>.notInList(list: Iterable<CompositeID>): InListOrNotInListBaseOp<List<*>>

Checks if this EntityID column is not equal to any element from list.

Checks if this expression is not equal to any element from list.

Link copied to clipboard
open infix fun <T> Expression<T>.notInSubQuery(query: AbstractQuery<*>): NotInSubQueryOp<T>

Checks if this expression is not equals to any row returned from query.

Link copied to clipboard

Checks if this expression is not equal to any element from the column of table with only a single column.

Link copied to clipboard
open infix fun <T : String?> Expression<T>.notLike(pattern: String): LikeEscapeOp
open infix fun <T : String?> Expression<T>.notLike(pattern: LikePattern): LikeEscapeOp
@JvmName(name = "notLikeWithEntityID")
open infix fun Expression<EntityID<String>>.notLike(pattern: String): LikeEscapeOp
@JvmName(name = "notLikeWithEntityID")
open infix fun Expression<EntityID<String>>.notLike(pattern: LikePattern): LikeEscapeOp

Checks if this expression doesn't match the specified pattern.

Checks if this expression doesn't match the specified pattern.

@JvmName(name = "notLikeWithEntityIDAndExpression")
open infix fun Expression<EntityID<String>>.notLike(expression: ExpressionWithColumnType<String>): LikeEscapeOp

Checks if this expression doesn't match the specified expression.

Link copied to clipboard

Returns value evaluated at the row that is the n'th row of the window frame (counting from 1); null if no such row.

Link copied to clipboard
open fun ntile(numBuckets: ExpressionWithColumnType<Int>): Ntile

Returns an integer ranging from 1 to the numBuckets, dividing the partition as equally as possible.

Link copied to clipboard

Returns the relative rank of the current row, that is (rank - 1) / (total partition rows - 1). The value thus ranges from 0 to 1 inclusive.

Link copied to clipboard
open infix operator fun String.plus(value: Expression<String>): Concat
open infix operator fun Expression<String>.plus(value: String): Concat
open infix operator fun Expression<String>.plus(value: Expression<String>): Concat

Concatenate the value to the input expression.

open infix operator fun <T> ExpressionWithColumnType<T>.plus(t: T): PlusOp<T, T>

Adds the t value to this expression.

open infix operator fun <T, S : T> ExpressionWithColumnType<T>.plus(other: Expression<S>): PlusOp<T, S>

Adds the other expression to this expression.

Link copied to clipboard
open fun rank(): Rank

Returns the rank of the current row, with gaps; that is, the row_number of the first row in its peer group.

Link copied to clipboard
open infix fun <T : String?> Expression<T>.regexp(pattern: String): RegexpOp<T>
open fun <T : String?> Expression<T>.regexp(pattern: Expression<String>, caseSensitive: Boolean = true): RegexpOp<T>

Checks if this expression matches the pattern. Supports regular expressions.

Link copied to clipboard
open infix operator fun <T : Number?, S : T> ExpressionWithColumnType<T>.rem(t: S): ModOp<T, S, T>

Calculates the remainder of dividing this expression by the t value.

open infix operator fun <T : Number?, S : Number> ExpressionWithColumnType<T>.rem(other: Expression<S>): ModOp<T, S, T>

Calculates the remainder of dividing this expression by the other expression.

@JvmName(name = "remWithEntityId")
open infix operator fun <T : Number, Comparable<T>, S : Number, ID : EntityID<T>?> ExpressionWithColumnType<ID>.rem(other: S): ExpressionWithColumnType<T>

Calculates the remainder of dividing the value of this numeric PK by the other number.

@JvmName(name = "remWithEntityId3")
open infix operator fun <T : Number, Comparable<T>, S : Number, ID : EntityID<T>?> ExpressionWithColumnType<ID>.rem(other: Expression<S>): ExpressionWithColumnType<T>

Calculates the remainder of dividing the value of this numeric PK by the other number expression.

@JvmName(name = "remWithEntityId2")
open infix operator fun <T : Number, Comparable<T>, S : Number, ID : EntityID<T>?> Expression<S>.rem(other: ExpressionWithColumnType<ID>): ExpressionWithColumnType<T>

Calculates the remainder of dividing this number expression by other numeric PK

Link copied to clipboard
open fun rowNumber(): RowNumber

Returns the number of the current row within its partition, counting from 1.

Link copied to clipboard
open infix operator fun <T> ExpressionWithColumnType<T>.times(t: T): TimesOp<T, T>

Multiplies this expression by the t value.

open infix operator fun <T, S : T> ExpressionWithColumnType<T>.times(other: Expression<S>): TimesOp<T, S>

Multiplies this expression by the other expression.

Link copied to clipboard
open fun <T, S : T?> ExpressionWithColumnType<in S>.wrap(value: T): QueryParameter<T>

Returns the specified value as a query parameter of type T.