---
url: /v6.2/calculation-function-logic.md
---
# 逻辑函数

## between

| 语法         | between(ARG,START,END)    |
|--------------|---------------------------|
| 参数说明     | 1. 参与计算的参数，任意类型；2. 指定起始，任意类型；3. 指定结束，任意类型 |
| 返回值类型   | 布尔                      |
| 描述         | 判断 arg 是否处于\[start,end]之间 |
| 例子         | between(5, 1, 10)，返回：TRUE |

## between_ie

| 语法         | between_ie(ARG,START,END) |
|--------------|---------------------------|
| 参数说明     | 1. 参与计算的参数，任意类型；2. 指定起始，任意类型；3. 指定结束，任意类型 |
| 返回值类型   | 布尔                      |
| 描述         | 判断 arg 是否处于(start,end]之间，左开右闭区间 |
| 例子         | between_ie(5, 5, 10)，返回：FALSE（因不包含左边界） |

## case when

| 语法         | case when condition then result1 \[else result2] end |
|--------------|-----------------------------------------------------|
| 参数说明     | condition 是一个返回值为布尔类型的表达式            |
| 返回值类型   | 与 result1、result2 类型一致                       |
| 描述         | 该函数根据 condition 条件表达式的返回结果进行输出。当 condition 为 true 时，返回 result1。当 condition 为 false 时，返回 result2，else 分支不是必须存在的。 |
| 例子         | case  when {code} = 2 then '优秀' when {code} = 1 then '通过' else '未通过'end |

## coalesce

| 语法         | coalesce(ARG, REPLACEMENT) |
|--------------|---------------------------|
| 参数说明     | 1. 参与计算的参数，任意类型；2. 用于替换 NULL 的值，任意类型（需与第一个参数类型一致） |
| 返回值类型   | ANY                       |
| 描述         | 将 arg 中的 NULL 值替换为其他一个值 |
| 例子         | coalesce(null, '默认值')，返回：'默认值'；coalesce(123, 0)，返回：123 |
| 不支持的数据源 | 无                        |

## if

| 语法         | if(B,TRUE,FALSE)          |
|--------------|---------------------------|
| 参数说明     | 1. 条件，布尔类型参数，可选类型：布尔；2. 条件为真时的值，任意类型；3. 条件为假时的值，任意类型 |
| 返回值类型   | ANY                       |
| 描述         | 条件分支判断，后两个参数的类型必需一样。 |
| 例子         | if({score}>=60, '及格', '不及格')，返回：根据 score 字段值返回对应字符串 |

## in

| 语法         | in(ARG,ARR)               |
|--------------|---------------------------|
| 参数说明     | 1. 参与计算的参数，任意类型；2. 数组类型参数，可选类型：ARRAY |
| 返回值类型   | 布尔                      |
| 描述         | 字段的值是否在列表中 |
| 例子         | in('apple', \['banana', 'apple'])，返回：TRUE |

## isnull

| 语法         | isnull(ARG)               |
|--------------|---------------------------|
| 参数说明     | 参与计算的参数，任意类型 |
| 返回值类型   | 布尔                      |
| 描述         | 判断指定字段是否为 null |
| 例子         | isnull(null)，返回：TRUE |

## isnotnull

| 语法         | isnotnull(ARG)            |
|--------------|---------------------------|
| 参数说明     | 参与计算的参数，任意类型 |
| 返回值类型   | 布尔                      |
| 描述         | 判断指定字段是否为非 null |
| 例子         | isnotnull('test')，返回：TRUE |

## not_between

| 语法         | not_between(ARG,START,END)    |
|--------------|---------------------------|
| 参数说明     | 1. 参与计算的参数，任意类型；2. 指定起始，任意类型；3. 指定结束，任意类型 |
| 返回值类型   | 布尔                      |
| 描述         | 判断 arg 是否在\[start,end]之外 |
| 例子         | not_between(5, 1, 10)，返回：FALSE |

## notin

| 语法         | notin(ARG,ARR)               |
|--------------|---------------------------|
| 参数说明     | 1. 参与计算的参数，任意类型；2. 数组类型参数，可选类型：ARRAY |
| 返回值类型   | 布尔                      |
| 描述         | 字段的值是否在列表之外 |
| 例子         | notin('apple', \['banana', 'apple'])，返回：FALSE |
