1. 概述编辑
1.1 版本
FineDataLink 版本 | 功能变动 |
---|---|
4.0.23 | 支持对常量、参数和其他字段进行公式计算或逻辑映射,将结果放到新的一列,参与后续运算或进行输出 |
1.2 功能简介
在不影响原有字段的情况下,「新增计算列」算子可利用原有字段通过引用或计算获得一个新的字段。
本文介绍「新增计算列」算子的一些逻辑原理。
2. 内容拓展编辑
3. 功能概述编辑
3.1 算子功能逻辑说明
功能说明 | 参与计算的元素 | 计算方式(可组合嵌套) |
---|---|---|
列间单行计算: 不跨行,在单列或列间进行计算后,将计算值放到新的一列中 列间统计计算: 跨行进行分组汇总计算,将结果放到新的一列中 | 常量、其他字段、参数、公式 | 直接计算表达式获取结果,表达式包括: 1)元素引用 2)元素间四则运算 3)元素间比较运算 4)元素间逻辑运算 5)元素公式计算
|
逻辑映射: 根据多个条件对原始数据进行分组或其他映射计算处理,将分组结果放到新的一列中 | 常量、其他字段、参数、公式 | 通过IF、SWITCH对作为条件的表达式进行判断,选取符合条件的分支,计算对应表达式获取结果 |
3.2 新增字段配置
注1:该页面支持字段的新增、删除,不支持字段的排序。
注2:新增后的字段将按列表顺序,追加到原字段末尾;如用户希望调整字段顺序,可在输出算子的「字段映射」处调整。
字段配置介绍请参见:
注:若新增列值的计算公式中包含参数,且参数为小数,将直接截取整数部分参与计算。
3.3 支持的运算符
3.3.1 四则运算
运算符 | 说明 | 参数类型与对应计算逻辑 | 结果类型 |
---|---|---|---|
+ | 数值相加 日期计算 文本拼接 | 文本 + 文本 / 数值 / 日期时间 / 布尔
| 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 |
3.3.2 比较运算
运算符 | 说明 | 参数类型与对应计算逻辑 | 结果类型 |
---|---|---|---|
> < >= <= = == != | 比较运算 | 文本、数值、日期时间、布尔 1)>、<、>=、<=:要求比较符两侧必须是同类型,不进行自动转换 2)=、==、!=:不要求比较符两侧类型,类型不一致视为不等,类型一致再进行值比较 3)=和==视为等价输入 | 布尔类型 运算数中存在NULL,结果为NULL 先判断类型,后判断NULL值情况 |
3.3.3 逻辑运算
运算符 | 说明 | 参数类型与对应计算逻辑 | 结果类型 |
---|---|---|---|
! | 逻辑非 | 布尔 布尔类型,FALSE视为数值0,TRUE视为数值1参与运算 对于数值类型数据:
| 布尔类型 运算数中存在NULL,结果为NULL |
3.3.4 优先级
运算符 | 说明 | 参数类型与对应计算逻辑 | 结果类型 |
---|---|---|---|
() | 提高运算优先级 | - | - |
3.4 手写公式
手写参数使用${}包裹生效,字段使用#{}包裹生效,参数和字段不匹配时标红(大小写敏感)。