# QBFunction

## Overview

The `QBFunction` class is a wrapper for SQL functions, designed for use within `QBSelect` to build complex expressions and conditions for queries. It facilitates operations such as mathematical transformations, string manipulations, and date/time calculations, enabling dynamic and flexible data handling.

Key features include creating expressions like `abs`, `avg`, `ceil`, `lower`, and `round` for mathematical or string operations. Date extraction functions, such as `day`, `month`, and `year`, are also supported. Logical conditions like `between`, `like`, `eq`, and `lt` provide powerful tools for data filtering and comparison.

For more information on constructing and executing queries, refer to the [QBSelect](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbselect) section of this documentation.

## Properties Summarized

| Type                                                                                                 | Name                       | Summary                                                                      |
| ---------------------------------------------------------------------------------------------------- | -------------------------- | ---------------------------------------------------------------------------- |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)           | [abs](#abs)                | Create abs(column) expression                                                |
| [QBSort](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbsort)               | [asc](#asc)                | Create an ascending sort expression                                          |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)           | [avg](#avg)                | Create an aggregate average expression.                                      |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)           | [bit\_length](#bit_length) | Create bit\_length(column) expression                                        |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)           | [ceil](#ceil)              | Create ceil(column) expression                                               |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)           | [count](#count)            | Create an aggregate count expression.                                        |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)           | [day](#day)                | Extract day from date                                                        |
| [QBSort](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbsort)               | [desc](#desc)              | Create an descending sort expression                                         |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)           | [floor](#floor)            | Create floor(column) expression                                              |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)           | [hour](#hour)              | Extract hour from date                                                       |
| [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition)     | [isNull](#isnull)          | Compare column with null.                                                    |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)           | [len](#len)                | Create length(column) expression                                             |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)           | [lower](#lower)            | Create lower(column) expression                                              |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)           | [max](#max)                | Create an aggregate max expression.                                          |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)           | [min](#min)                | Create an aggregate min expression.                                          |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)           | [minute](#minute)          | Extract minute from date                                                     |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)           | [month](#month)            | Extract month from date                                                      |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)           | [not](#not)                | Create a negated condition.                                                  |
| [QBTableClause](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbtableclause) | [parent](#parent)          | Get query builder parent table clause, this may be a query or a join clause. |
| [QBSelect](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbselect)           | [root](#root)              | Get query builder parent.                                                    |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)           | [round](#round)            | Create round(column) expression                                              |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)           | [second](#second)          | Extract second from date                                                     |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)           | [sqrt](#sqrt)              | Create sqrt(column) expression                                               |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)           | [sum](#sum)                | Create an aggregate sum expression.                                          |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)           | [trim](#trim)              | Create trim(column) expression                                               |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)           | [upper](#upper)            | Create upper(column) expression                                              |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)           | [year](#year)              | Extract year from date                                                       |

## Methods Summarized

| Type                                                                                             | Name                                              | Summary                                                                                |
| ------------------------------------------------------------------------------------------------ | ------------------------------------------------- | -------------------------------------------------------------------------------------- |
| [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition) | [between(value1, value2)](#between-value1-value2) | Compare column to a range of 2 values or other columns.                                |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)       | [cast(type)](#cast-type)                          | Create cast(column, type) expression                                                   |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)       | [concat(arg)](#concat-arg)                        | Concatename with value                                                                 |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)       | [divide(arg)](#divide-arg)                        | Divide by value                                                                        |
| [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition) | [eq(value)](#eq-value)                            | Compare column with a value or another column.                                         |
| [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition) | [ge(value)](#ge-value)                            | Compare column with a value or another column.                                         |
| [Number](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/number)                     | [getFlags()](#getflags)                           | The flags are a bit pattern consisting of 1 or more of the following bits: - JSColumn. |
| [String](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/string)                     | [getTypeAsString()](#gettypeasstring)             | Column type as a string                                                                |
| [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition) | [gt(value)](#gt-value)                            | Compare column with a value or another column.                                         |
| [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition) | [isin(query)](#isin-query)                        | Compare column with subquery result.                                                   |
| [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition) | [isin(values)](#isin-values)                      | Compare column with values.                                                            |
| [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition) | [isin(customQuery, args)](#isin-customquery-args) | Compare column with custom query result.                                               |
| [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition) | [le(value)](#le-value)                            | Compare column with a value or another column.                                         |
| [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition) | [like(pattern)](#like-pattern)                    | Compare column with a value or another column.                                         |
| [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition) | [like(pattern, escape)](#like-pattern-escape)     | Compare column with a value or another column.                                         |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)       | [locate(arg)](#locate-arg)                        | Create locate(arg) expression                                                          |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)       | [locate(arg, start)](#locate-arg-start)           | Create locate(arg, start) expression                                                   |
| [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition) | [lt(value)](#lt-value)                            | Compare column with a value or another column.                                         |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)       | [minus(arg)](#minus-arg)                          | Subtract value                                                                         |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)       | [mod(arg)](#mod-arg)                              | Create mod(arg) expression                                                             |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)       | [multiply(arg)](#multiply-arg)                    | Multiply with value                                                                    |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)       | [nullif(arg)](#nullif-arg)                        | Create nullif(arg) expression                                                          |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)       | [plus(arg)](#plus-arg)                            | Add up value                                                                           |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)       | [substring(pos)](#substring-pos)                  | Create substring(pos) expression                                                       |
| [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn)       | [substring(pos, len)](#substring-pos-len)         | Create substring(pos, len) expression                                                  |

## Properties Detailed

### abs

Create abs(column) expression

**Type**\
[QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the absolute value function.

**Sample**

```js
query.result.add(query.columns.custname.abs)
```

### asc

Create an ascending sort expression

**Type**\
[QBSort](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbsort) a QBSort representing an ascending sort order.

**Sample**

```js
var query = datasources.db.example_data.orders.createSelect();
query.sort
.add(query.joins.orders_to_order_details.columns.quantity.asc)
.add(query.columns.companyid)
foundset.loadRecords(query)
```

### avg

Create an aggregate average expression.

**Type**\
[QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBAggregate representing the average aggregate function.

**Sample**

```js
var query = datasources.db.example_data.orders.createSelect();
	query.groupBy.addPk() // have to group by on pk when using having-conditions in (foundset) pk queries
	.root.having.add(query.joins.orders_to_order_details.columns.quantity.avg.eq(1))
	foundset.loadRecords(query)
```

### bit\_length

Create bit\_length(column) expression

**Type**\
[QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the bit length function.

**Sample**

```js
query.result.add(query.columns.custname.bit_length)
```

### ceil

Create ceil(column) expression

**Type**\
[QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the ceil function.

**Sample**

```js
query.result.add(query.columns.mycol.ceil)
```

### count

Create an aggregate count expression.

**Type**\
[QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBAggregate representing the count aggregate function.

**Sample**

```js
var query = datasources.db.example_data.orders.createSelect();
	query.groupBy.addPk() // have to group by on pk when using having-conditions in (foundset) pk queries
	.root.having.add(query.joins.orders_to_order_details.columns.quantity.count.eq(0))
	foundset.loadRecords(query)
```

### day

Extract day from date

**Type**\
[QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the extraction of the day from a date.

**Sample**

```js
query.result.add(query.columns.mydatecol.day)
```

### desc

Create an descending sort expression

**Type**\
[QBSort](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbsort) a QBSort representing a descending sort order.

**Sample**

```js
var query = datasources.db.example_data.orders.createSelect();
query.sort
.add(query.joins.orders_to_order_details.columns.quantity.desc)
.add(query.columns.companyid)
foundset.loadRecords(query)
```

### floor

Create floor(column) expression

**Type**\
[QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the floor function.

**Sample**

```js
query.result.add(query.columns.mycol.floor)
```

### hour

Extract hour from date

**Type**\
[QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the extraction of the hour from a date.

**Sample**

```js
query.result.add(query.columns.mydatecol.hour)
```

### isNull

Compare column with null.

**Type**\
[QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition) a QBCondition representing the "is null" comparison.

**Sample**

```js
query.where.add(query.columns.flag.isNull)
```

### len

Create length(column) expression

**Type**\
[QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the length function.

**Sample**

```js
query.result.add(query.columns.custname.len)
```

### lower

Create lower(column) expression

**Type**\
[QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the lower case transformation.

**Sample**

```js
query.result.add(query.columns.custname.lower)
```

### max

Create an aggregate max expression.

**Type**\
[QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBAggregate representing the maximum aggregate function.

**Sample**

```js
var query = datasources.db.example_data.orders.createSelect();
	query.groupBy.addPk() // have to group by on pk when using having-conditions in (foundset) pk queries
	.root.having.add(query.joins.orders_to_order_details.columns.quantity.count.max(10))
	foundset.loadRecords(query)
```

### min

Create an aggregate min expression.

**Type**\
[QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBAggregate representing the minimum aggregate function.

**Sample**

```js
var query = datasources.db.example_data.orders.createSelect();
	query.groupBy.addPk() // have to group by on pk when using having-conditions in (foundset) pk queries
	.root.having.add(query.joins.orders_to_order_details.columns.quantity.count.min(10))
	foundset.loadRecords(query)
```

### minute

Extract minute from date

**Type**\
[QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the extraction of the minute from a date.

**Sample**

```js
query.result.add(query.columns.mydatecol.minute)
```

### month

Extract month from date

**Type**\
[QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the extraction of the month from a date.

**Sample**

```js
query.result.add(query.columns.mydatecol.month)
```

### not

Create a negated condition.

**Type**\
[QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBColumn representing the negated condition.

**Sample**

```js
query.where.add(query.columns.flag.not.eq(1))
```

### parent

Get query builder parent table clause, this may be a query or a join clause.

**Type**\
[QBTableClause](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbtableclause)

**Sample**

```js
var query = datasources.db.example_data.person.createSelect();
	query.where.add(query.joins.person_to_parent.joins.person_to_parent.columns.name.eq('john'))
	foundset.loadRecords(query)
```

### root

Get query builder parent.

**Type**\
[QBSelect](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbselect)

**Sample**

```js
var subquery = datasources.db.example_data.order_details.createSelect();

	var query = datasources.db.example_data.orders.createSelect();
	query.where.add(query
		.or
			.add(query.columns.order_id.not.isin([1, 2, 3]))

			.add(query.exists(
					subquery.where.add(subquery.columns.orderid.eq(query.columns.order_id)).root
			))
		)

	foundset.loadRecords(query)
```

### round

Create round(column) expression

**Type**\
[QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the round function.

**Sample**

```js
query.result.add(query.columns.mycol.round)
```

### second

Extract second from date

**Type**\
[QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the extraction of the second from a date.

**Sample**

```js
query.result.add(query.columns.mydatecol.second)
```

### sqrt

Create sqrt(column) expression

**Type**\
[QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the square root function.

**Sample**

```js
query.result.add(query.columns.custname.sqrt)
```

### sum

Create an aggregate sum expression.

**Type**\
[QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBAggregate representing the sum aggregate function.

**Sample**

```js
var query = datasources.db.example_data.orders.createSelect();
	query.groupBy.addPk() // have to group by on pk when using having-conditions in (foundset) pk queries
	.root.having.add(query.joins.orders_to_order_details.columns.quantity.count.sum(10))
	foundset.loadRecords(query)
```

### trim

Create trim(column) expression

**Type**\
[QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the trim function.

**Sample**

```js
query.result.add(query.columns.custname.trim)
```

### upper

Create upper(column) expression

**Type**\
[QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the upper case transformation.

**Sample**

```js
query.result.add(query.columns.custname.upper)
```

### year

Extract year from date

**Type**\
[QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the extraction of the year from a date.

**Sample**

```js
query.result.add(query.columns.mydatecol.year)
```

## Methods Detailed

### between(value1, value2)

Compare column to a range of 2 values or other columns.

**Parameters**

* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **value1** ;
* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **value2** ;

**Returns:** [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition) a QBCondition representing the "between" comparison for the two values.

**Sample**

```js
query.where.add(query.columns.flag.between(0, 5))
```

### cast(type)

Create cast(column, type) expression

**Parameters**

* [String](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/string) **type** string type, see QUERY\_COLUMN\_TYPES

**Returns:** [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the cast function with the specified type.

**Sample**

```js
query.result.add(query.columns.mycol.cast(QUERY_COLUMN_TYPES.TYPE_INTEGER))
```

### concat(arg)

Concatename with value

**Parameters**

* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **arg** valeu to concatenate with

**Returns:** [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the concatenation operation.

**Sample**

```js
query.result.add(query.columns.firstname.concat(' ').concat(query.columns.lastname))
```

### divide(arg)

Divide by value

**Parameters**

* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **arg** nr to divide by

**Returns:** [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the division operation.

**Sample**

```js
query.result.add(query.columns.mycol.divide(2))
```

### eq(value)

Compare column with a value or another column.\
Operator: equals

**Parameters**

* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **value** ;

**Returns:** [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition) a QBCondition representing the "equals" comparison.

**Sample**

```js
query.where.add(query.columns.flag.eq(1))
```

### ge(value)

Compare column with a value or another column.\
Operator: greaterThanOrEqual

**Parameters**

* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **value** ;

**Returns:** [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition) a QBCondition representing the "greater than or equal to" comparison.

**Sample**

```js
query.where.add(query.columns.flag.ge(2))
```

### getFlags()

The flags are a bit pattern consisting of 1 or more of the following bits:\
\- JSColumn.UUID\_COLUMN\
\- JSColumn.EXCLUDED\_COLUMN\
\- JSColumn.TENANT\_COLUMN

**Returns:** [Number](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/number) an integer representing the flags of the column.

### getTypeAsString()

Column type as a string

**Returns:** [String](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/string) a string representing the column type.

### gt(value)

Compare column with a value or another column.\
Operator: greaterThan

**Parameters**

* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **value** ;

**Returns:** [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition) a QBCondition representing the "greater than" comparison.

**Sample**

```js
query.where.add(query.columns.flag.gt(0))
```

### isin(query)

Compare column with subquery result.

**Parameters**

* [QBPart](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbpart) **query** subquery

**Returns:** [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition) a QBCondition representing the "in" comparison with a subquery.

**Sample**

```js
query.where.add(query.columns.flag.isin(query2))
```

### isin(values)

Compare column with values.

**Parameters**

* [Array](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/array) **values** array of values

**Returns:** [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition) a QBCondition representing the "in" comparison with a list of values.

**Sample**

```js
query.where.add(query.columns.flag.isin([1, 5, 99]))
```

### isin(customQuery, args)

Compare column with custom query result.

**Parameters**

* [String](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/string) **customQuery** custom query
* [Array](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/array) **args** query arguments

**Returns:** [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition) a QBCondition representing the "in" comparison with a custom query and arguments.

**Sample**

```js
query.where.add(query.columns.ccy.isin("select ccycode from currencies c where c.category = " + query.getTableAlias() + ".currency_category and c.flag = ?", ['T']))
```

### le(value)

Compare column with a value or another column.\
Operator: lessThanOrEqual

**Parameters**

* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **value** ;

**Returns:** [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition) a QBCondition representing the "less than or equal to" comparison.

**Sample**

```js
query.where.add(query.columns.flag.le(2))
```

### like(pattern)

Compare column with a value or another column.\
Operator: like

**Parameters**

* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **pattern** the string value of the pattern

**Returns:** [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition) a QBCondition representing the "like" comparison with a pattern.

**Sample**

```js
query.where.add(query.columns.companyname.like('Serv%'))

// case-insensitive compares can be done using the upper (or lower) functions,
// this can be useful when using for example German letters like ß,
query.where.add(query.columns.companyname.upper.like(query.functions.upper('groß%')))
```

### like(pattern, escape)

Compare column with a value or another column.\
Operator: like, with escape character

**Parameters**

* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **pattern** the string value of the pattern
* [Number](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/number) **escape** the escape char

**Returns:** [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition) a QBCondition representing the "like" comparison with a pattern and an escape character.

**Sample**

```js
query.where.add(query.columns.companyname.like('X_%', '_'))
```

### locate(arg)

Create locate(arg) expression

**Parameters**

* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **arg** string to locate

**Returns:** [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the locate function for the specified string.

**Sample**

```js
query.result.add(query.columns.mycol.locate('sample'))
```

### locate(arg, start)

Create locate(arg, start) expression

**Parameters**

* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **arg** string to locate
* [Number](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/number) **start** start pos

**Returns:** [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the locate function starting from the specified position.

**Sample**

```js
query.result.add(query.columns.mycol.locate('sample', 5))
```

### lt(value)

Compare column with a value or another column.\
Operator: lessThan

**Parameters**

* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **value** ;

**Returns:** [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition) a QBCondition representing the "less than" comparison.

**Sample**

```js
query.where.add(query.columns.flag.lt(99))
```

### minus(arg)

Subtract value

**Parameters**

* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **arg** nr to subtract

**Returns:** [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the subtraction operation.

**Sample**

```js
query.result.add(query.columns.mycol.minus(2))
```

### mod(arg)

Create mod(arg) expression

**Parameters**

* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **arg** mod arg

**Returns:** [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the modulo operation.

**Sample**

```js
query.result.add(query.columns.mycol.mod(2))
```

### multiply(arg)

Multiply with value

**Parameters**

* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **arg** nr to multiply with

**Returns:** [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the multiplication operation.

**Sample**

```js
query.result.add(query.columns.mycol.multiply(2))
```

### nullif(arg)

Create nullif(arg) expression

**Parameters**

* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **arg** object to compare

**Returns:** [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the nullif function.

**Sample**

```js
query.result.add(query.columns.mycol.nullif('none'))
```

### plus(arg)

Add up value

**Parameters**

* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **arg** nr to add

**Returns:** [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the addition operation.

**Sample**

```js
query.result.add(query.columns.mycol.plus(2))
```

### substring(pos)

Create substring(pos) expression

**Parameters**

* [Number](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/number) **pos** ;

**Returns:** [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the substring function starting from the specified position.

**Sample**

```js
query.result.add(query.columns.mycol.substring(3))
```

### substring(pos, len)

Create substring(pos, len) expression

**Parameters**

* [Number](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/number) **pos** ;
* [Number](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/number) **len** ;

**Returns:** [QBColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumn) a QBFunction representing the substring function with the specified position and length.

**Sample**

```js
query.result.add(query.columns.mycol.substring(3, 2))
```

***
