# QBScoreColumn

## Overview

The `QBScoreColumn` class represents a score on a vector column in a `QBSelect` query.

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

## **Extends**

[QBNumberColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbscorecolumn)

## Properties Summarized

| Type                                                                                                           | Name              | Summary                                 |
| -------------------------------------------------------------------------------------------------------------- | ----------------- | --------------------------------------- |
| [QBScoreColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbscorecolumn)           | [abs](#abs)       | Create abs(column) expression           |
| [QBScoreColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbscorecolumn)           | [avg](#avg)       | Create an aggregate average expression. |
| [QBIntegerColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbintegercolumn)       | [ceil](#ceil)     | Create ceil(column) expression          |
| [QBIntegerColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbintegercolumn)       | [floor](#floor)   | Create floor(column) expression         |
| [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition)               | [isNull](#isnull) | Compare column with null.               |
| [QBScoreColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbscorecolumn)           | [max](#max)       | Create an aggregate max expression.     |
| [QBScoreColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbscorecolumn)           | [min](#min)       | Create an aggregate min expression.     |
| [QBColumnComparable](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcolumncomparable) | [not](#not)       | Create a negated condition.             |
| [QBIntegerColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbintegercolumn)       | [round](#round)   | Create round(column) expression         |
| [QBNumberColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbnumbercolumn)         | [sqrt](#sqrt)     | Create sqrt(column) expression          |
| [QBScoreColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbscorecolumn)           | [sum](#sum)       | Create an aggregate sum expression.     |

## 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.         |
| [QBScoreColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbscorecolumn)   | [coalesce(value)](#coalesce-value)                | Create coalesce(arg) expression                                 |
| [QBNumberColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbnumbercolumn) | [divide(value)](#divide-value)                    | 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.                  |
| [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)       | [lt(value)](#lt-value)                            | Compare column with a value or another column.                  |
| [QBCondition](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbcondition)       | [min\_score(value)](#min_score-value)             | Compare normalized score column with a value or another column. |
| [QBNumberColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbnumbercolumn) | [minus(value)](#minus-value)                      | Subtract value                                                  |
| [QBScoreColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbscorecolumn)   | [mod(arg)](#mod-arg)                              | Create mod(arg) expression                                      |
| [QBNumberColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbnumbercolumn) | [multiply(value)](#multiply-value)                | Multiply with value                                             |
| [QBScoreColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbscorecolumn)   | [nullif(arg)](#nullif-arg)                        | Create nullif(arg) expression                                   |
| [QBNumberColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbnumbercolumn) | [plus(value)](#plus-value)                        | Add up value                                                    |

## Properties Detailed

### abs

Create abs(column) expression

**Type**\
[QBScoreColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbscorecolumn) a QBColumn representing the absolute value of the column.

**Sample**

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

### avg

Create an aggregate average expression.

**Type**\
[QBScoreColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbscorecolumn) a QBColumn representing the average aggregate of the column.

**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)
```

### ceil

Create ceil(column) expression

**Type**\
[QBIntegerColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbintegercolumn) a QBIntegerColumn representing the ceil expression for the column.

**Sample**

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

### floor

Create floor(column) expression

**Type**\
[QBIntegerColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbintegercolumn) a QBIntegerColumn representing the floor expression for the column.

**Sample**

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

### 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)
```

### max

Create an aggregate max expression.

**Type**\
[QBScoreColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbscorecolumn) a QBColumn 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.max(10))
	foundset.loadRecords(query)
```

### min

Create an aggregate min expression.

**Type**\
[QBScoreColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbscorecolumn) a QBColumn 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)
```

### not

Create a negated condition.

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

**Sample**

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

### round

Create round(column) expression

**Type**\
[QBIntegerColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbintegercolumn) a QBIntegerColumn representing the round expression for the column.

**Sample**

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

### sqrt

Create sqrt(column) expression

**Type**\
[QBNumberColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbnumbercolumn) a QBNumberColumn representing the square root of the column.

**Sample**

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

### sum

Create an aggregate sum expression.

**Type**\
[QBScoreColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbscorecolumn) a QBColumn representing the sum aggregate of the column.

**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.sum.gt(100))
	foundset.loadRecords(query)
```

## 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))
```

### coalesce(value)

Create coalesce(arg) expression

**Parameters**

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

**Returns:** [QBScoreColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbscorecolumn) a QBColumn representing the coalesce expression.

**Sample**

```js
query.result.add(query.columns.mycol.coalesce('defval'))
```

### divide(value)

Divide by value

**Parameters**

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

**Returns:** [QBNumberColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbnumbercolumn) a QBNumberColumn representing the column divided by the value.

**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))
```

### 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))
```

### 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))
```

### min\_score(value)

Compare normalized score column with a value or another column.\
The normalized score is a number from 0 to 1 where higher means better.

This function is equivalent to 'vector\_score(embedding).ge(score)', but optimized for the specific database implementation.

Operator: min\_score

**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 "minimal score" comparison.

**Sample**

```js
query.where.add(query.joins.books_to_books_embeddings.columns.embedding.vector_score(model.embedding('Magic or Fantasy')).min_score(0.7))
```

### minus(value)

Subtract value

**Parameters**

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

**Returns:** [QBNumberColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbnumbercolumn) a QBNumberColumn representing the column substracted with the value.

**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:** [QBScoreColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbscorecolumn) a QBColumn representing the modulo of the column.

**Sample**

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

### multiply(value)

Multiply with value

**Parameters**

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

**Returns:** [QBNumberColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbnumbercolumn) a QBNumberColumn representing the column multiplied with the value.

**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:** [QBScoreColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbscorecolumn) a QBColumn representing the nullif expression.

**Sample**

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

### plus(value)

Add up value

**Parameters**

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

**Returns:** [QBNumberColumn](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbnumbercolumn) a QBNumberColumn representing the column added with the value.

**Sample**

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

***
