English | 简体中文

api-docs / me.liuwj.ktorm.expression / ScalarExpression

ScalarExpression

abstract class ScalarExpression<T : Any> : 
    SqlExpression,
    ColumnDeclaring<T>
(source code)

Base class of scalar expressions. An expression is “scalar” if it has a return value (eg. a + 1).

Parameters

T - the return value’s type of this scalar expression.

Constructors

NameSummary

<init>

ScalarExpression()

Base class of scalar expressions. An expression is “scalar” if it has a return value (eg. a + 1).

Properties

NameSummary

sqlType

abstract val sqlType: SqlType<T>

The SqlType of this column or expression.

Inherited Properties

NameSummary

extraProperties

abstract val extraProperties: Map<String, Any>

Extra properties of this expression, maybe useful in SqlFormatter to generate some special SQLs.

isLeafNode

abstract val isLeafNode: Boolean

Check if this expression is a leaf node in expression trees.

Functions

NameSummary

aliased

open fun aliased(
    label: String?
): ColumnDeclaringExpression<T>

Wrap this instance as a ColumnDeclaringExpression.

asExpression

open fun asExpression(): ScalarExpression<T>

Convert this instance to a ScalarExpression.

wrapArgument

open fun wrapArgument(argument: T?): ArgumentExpression<T>

Wrap the given argument as an ArgumentExpression using the sqlType.

Extension Functions

NameSummary

and


infix fun ColumnDeclaring<Boolean>.and(
    argument: Boolean
): BinaryExpression<Boolean>

And operator, translated to the and keyword in SQL.

asc

Order this column or expression in ascending order.

cast

fun <T : Any> ColumnDeclaring<*>.cast(
    sqlType: SqlType<T>
): CastingExpression<T>

Cast the current column or expression to the given SqlType.

desc

Order this column or expression in descending order, corresponding to the desc keyword in SQL.

div

infix operator fun <T : Number> ColumnDeclaring<T>.div(
    expr: ColumnDeclaring<T>
): BinaryExpression<T>

infix operator fun <T : Number> ColumnDeclaring<T>.div(
    argument: T
): BinaryExpression<T>

Divide operator, translated to / in SQL.

eq

infix fun <T : Any> ColumnDeclaring<T>.eq(
    expr: ColumnDeclaring<T>
): BinaryExpression<Boolean>

infix fun <T : Any> ColumnDeclaring<T>.eq(
    argument: T
): BinaryExpression<Boolean>

Equal operator, translated to = in SQL.

ifNull

fun <T : Any> ColumnDeclaring<T>.ifNull(
    right: ColumnDeclaring<T>
): FunctionExpression<T>

fun <T : Any> ColumnDeclaring<T>.ifNull(
    right: T?
): FunctionExpression<T>

MySQL ifnull function, translated to ifnull(left, right).

ilike

infix fun ColumnDeclaring<*>.ilike(
    expr: ColumnDeclaring<String>
): ILikeExpression

infix fun ColumnDeclaring<*>.ilike(
    argument: String
): ILikeExpression

ILike operator, translated to the ilike keyword in PostgreSQL.

inList

fun <T : Any> ColumnDeclaring<T>.inList(
    vararg list: T
): InListExpression<T>

infix fun <T : Any> ColumnDeclaring<T>.inList(
    list: Collection<T>
): InListExpression<T>

infix fun <T : Any> ColumnDeclaring<T>.inList(
    query: Query
): InListExpression<T>

In-list operator, translated to the in keyword in SQL.

isNotNull

Check if the current column or expression is not null, translated to is not null in SQL.

isNull

Check if the current column or expression is null, translated to is null in SQL.

like

infix fun ColumnDeclaring<*>.like(
    expr: ColumnDeclaring<String>
): BinaryExpression<Boolean>

infix fun ColumnDeclaring<*>.like(
    argument: String
): BinaryExpression<Boolean>

Like operator, translated to the like keyword in SQL.

minus

infix operator fun <T : Number> ColumnDeclaring<T>.minus(
    expr: ColumnDeclaring<T>
): BinaryExpression<T>

infix operator fun <T : Number> ColumnDeclaring<T>.minus(
    argument: T
): BinaryExpression<T>

Minus operator, translated to - in SQL.

not

Negative operator, translated to the not keyword in SQL.

notEq

infix fun <T : Any> ColumnDeclaring<T>.notEq(
    expr: ColumnDeclaring<T>
): BinaryExpression<Boolean>

infix fun <T : Any> ColumnDeclaring<T>.notEq(
    argument: T
): BinaryExpression<Boolean>

Not-equal operator, translated to <> in SQL.

notInList

fun <T : Any> ColumnDeclaring<T>.notInList(
    vararg list: T
): InListExpression<T>

infix fun <T : Any> ColumnDeclaring<T>.notInList(
    list: Collection<T>
): InListExpression<T>

infix fun <T : Any> ColumnDeclaring<T>.notInList(
    query: Query
): InListExpression<T>

Not-in-list operator, translated to the not in keyword in SQL.

notLike

infix fun ColumnDeclaring<*>.notLike(
    expr: ColumnDeclaring<String>
): BinaryExpression<Boolean>

infix fun ColumnDeclaring<*>.notLike(
    argument: String
): BinaryExpression<Boolean>

Not like operator, translated to the not like keyword in SQL.

or


infix fun ColumnDeclaring<Boolean>.or(
    argument: Boolean
): BinaryExpression<Boolean>

Or operator, translated to the or keyword in SQL.

plus

infix operator fun <T : Number> ColumnDeclaring<T>.plus(
    expr: ColumnDeclaring<T>
): BinaryExpression<T>

infix operator fun <T : Number> ColumnDeclaring<T>.plus(
    argument: T
): BinaryExpression<T>

Plus operator, translated to + in SQL.

rem

infix operator fun <T : Number> ColumnDeclaring<T>.rem(
    expr: ColumnDeclaring<T>
): BinaryExpression<T>

infix operator fun <T : Number> ColumnDeclaring<T>.rem(
    argument: T
): BinaryExpression<T>

Mod operator, translated to % in SQL.

replace

fun ColumnDeclaring<String>.replace(
    oldValue: String,
    newValue: String
): FunctionExpression<String>

MySQL replace function, translated to replace(str, oldValue, newValue).

times

infix operator fun <T : Number> ColumnDeclaring<T>.times(
    expr: ColumnDeclaring<T>
): BinaryExpression<T>

infix operator fun <T : Number> ColumnDeclaring<T>.times(
    argument: T
): BinaryExpression<T>

Multiply operator, translated to * in SQL.

toDouble

Cast the current column or expression’s type to Double.

toFloat

Cast the current column or expression’s type to Float.

toInt

Cast the current column or expression’s type to Int.

toLong

Cast the current column or expression’s type to Long.

unaryMinus

operator fun <T : Number> ColumnDeclaring<T>.unaryMinus(): UnaryExpression<T>

Unary minus operator, translated to - in SQL.

unaryPlus

operator fun <T : Number> ColumnDeclaring<T>.unaryPlus(): UnaryExpression<T>

Unary plus operator, translated to + in SQL.

xor


infix fun ColumnDeclaring<Boolean>.xor(
    argument: Boolean
): BinaryExpression<Boolean>

Xor operator, translated to the xor keyword in SQL.

Inheritors

NameSummary

AggregateExpression

data class AggregateExpression<T : Any> : ScalarExpression<T>

Aggregate expression.

ArgumentExpression

data class ArgumentExpression<T : Any> : ScalarExpression<T>

Argument expression, wraps an argument passed to the executed SQL.

BetweenExpression

data class BetweenExpression<T : Any> : 
    ScalarExpression<Boolean>

Between expression, check if a scalar expression is in the given range.

BinaryExpression

data class BinaryExpression<T : Any> : ScalarExpression<T>

Binary expression.

CastingExpression

data class CastingExpression<T : Any> : ScalarExpression<T>

Wrap a SQL expression, changing its return type.

ColumnDeclaringExpression

data class ColumnDeclaringExpression<T : Any> : 
    ScalarExpression<T>

Column declaring expression, represents the selected columns in a SelectExpression.

ColumnExpression

data class ColumnExpression<T : Any> : ScalarExpression<T>

Column expression.

ExistsExpression

data class ExistsExpression : ScalarExpression<Boolean>

Exists expression, check if the specific query has at least one result.

FunctionExpression

data class FunctionExpression<T : Any> : ScalarExpression<T>

Function expression, represents a SQL function call.

ILikeExpression

data class ILikeExpression : ScalarExpression<Boolean>

ILike expression, represents PostgreSQL’s ilike keyword.

InListExpression

data class InListExpression<T : Any> : 
    ScalarExpression<Boolean>

In-list expression, translated to the in keyword in SQL.

MatchAgainstExpression

data class MatchAgainstExpression : ScalarExpression<Boolean>

Match against expression, represents an match ... against ... operation in MySQL.
See https://dev.mysql.com/doc/refman/5.5/en/insert-on-duplicate.html

UnaryExpression

data class UnaryExpression<T : Any> : ScalarExpression<T>

Unary expression.