历史版本7 :函数计算格式 返回文檔
編輯時間: 內容長度:图片数:目录数: 修改原因:

目錄:

1. 概述编辑

在不影响原有字段的情况下,「新增计算列」算子可利用原有字段通过引用或计算获得一个新的字段。

本文介绍「新增计算列」算子的一些逻辑原理。

2. 功能概述编辑

2.1 算子功能逻辑说明

功能说明
参与计算的元素计算方式(可组合嵌套)
列间单行计算:

不跨行,在单列或列间进行计算后,将计算值放到新的一列中

常量、其他字段、参数、公式

直接计算表达式获取结果,表达式包括:

1)元素引用

2)元素间四则运算

3)元素间比较运算

4)元素间逻辑运算

5)元素公式计算

  • 逻辑公式(OR、AND)

  • 文本公式

  • 日期时间公式

  • 数学公式

逻辑映射:

根据多个条件对原始数据进行分组或其他映射计算处理,将分组结果放到新的一列中

常量、其他字段、参数、公式通过IFSWITCH对作为条件的表达式进行判断,选取符合条件的分支,计算对应表达式获取结果

2.2 支持的运算符

2.2.1 四则运算

运算符
说明参数类型与对应计算逻辑
结果类型
+数值相加

日期计算

文本拼接

文本 + 文本 / 数值 / 日期时间 / 布尔
  • 任一参数有文本,进行文本拼接

  • 日期时间将转换为YYYY-MM-dd HH:mm:ss字符串

  • 布尔类型,FALSE视为数值0,TRUE视为数值1参与运算

  • 文本拼接情况下,运算数中有NULL,将其视为空字符串参与拼接

  • 如果运算数全为NULL,结果为NULL

日期时间 + 数值X(数值X + 日期时间)(逻辑同ADDTODATE)

  • 计算指定日期X天后的日期

  • 如果是小数,会将小数的天数折合成时分秒

  • 运算数中有NULL,结果为NULL

数值X + 数值Y

  • 数值加

  • 运算数中存在NULL,结果为NULL

注:不支持日期+日期操作

1)文本 + 文本 / 数值 / 日期时间 / 布尔:文本类型

2)日期时间 + 数值X(数值X + 日期时间):日期时间类型

3)数值X + 数值Y:数值类型

/数值相除布尔类型,FALSE视为数值0,TRUE视为数值1参与运算

数值 / 数值,数值相除

数值类型

运算数中存在NULL,结果为NULL

除数为 0 时,结果为NULL

注:该操作符两端必须为数值类型

*数值相乘布尔类型,FALSE视为数值0,TRUE视为数值1参与运算

数值 * 数值,数值相乘

数值类型

运算数中存在NULL,结果为NULL

注:该操作符两端必须为数值类型

-数值相减

日期计算

布尔类型,FALSE视为数值0,TRUE视为数值1参与运算

数值X - 数值Y,数值减

日期时间 - 数值X(逻辑同ADDTODATE),计算指定日期X天前的日期

日期时间 - 日期时间,计算指定日期时间之间的毫秒数

1)数值X - 数值Y:数值类型

2)日期时间 - 数值X:日期时间类型

3)日期时间 - 日期时间:数值类型

4)运算数中存在NULL,结果为NULL

注:不支持数值-日期操作;文本类型不能作为减数或被减数

2.2.2 比较运算

运算符
说明参数类型与对应计算逻辑结果类型

>

<

>=

<=

=

==

!=

比较运算文本、数值、日期时间、布尔

1)>、<、>=、<=:要求比较符两侧必须是同类型,不进行自动转换

2)=、==、!=:不要求比较符两侧类型,类型不一致视为不等,类型一致再进行值比较

=和==视为等价输入

布尔类型

运算数中存在NULL,结果为NULL

先判断类型,后判断NULL值情况

2.2.3 逻辑运算

运算符
说明参数类型与对应计算逻辑结果类型
!逻辑非

布尔类型

FALSE视为数值0,TRUE视为数值1参与运算

对于数值类型数据:

  • 非 0 值视为真

  • 0 值视为假

布尔类型

运算数中存在NULL,结果为NULL

2.2.4 优先级

运算符
说明参数类型与对应计算逻辑结果类型
()提高运算优先级--

2.3 手写公式

手写参数使用${}包裹生效,字段使用#{}包裹生效,参数和字段不匹配时标红(大小写敏感)。

2.4 常量写法

表达式种类
说明
文本
用双引号包括的内容
数值无符号包括的数字
NULL直接写 NULL 即可

大小写均有效

布尔直接写 TRUE、FALSE 即可

大小写均有效