1. 概述
2. 公式组成
公式计算由四个内容组成:
内容 | 说明 |
---|---|
函数 | 用于对字段中的值或成员进行转换的语句 |
字段 | 用户数据表中的字段或者已经在 FineDataLink 中设置的参数 |
运算符 | 指明运算的符号 |
常量 | 按照写入内容表示的常量值 |
例如,假设有以下计算:
IF(应付金额>2000,"大订单","小订单")
对应计算内容如下所示:
内容 | 说明 |
---|---|
函数 | IF |
字段 | 合同金额 注:字段必须在左侧字段框中选择,不可手动输入。 |
运算符 | 详情参见本文 3.3 节 |
常量 | 字符串文本:"大订单"、"小订单" 数字文本:2000 |
注:并非所有计算都需要包含所有四个组件。
有关如何使用计算中的每个组件以及设置其格式的详细信息,请参见下面的部分。
3. 计算语法
3.1 函数语法
在 FineDataLink 中,函数是计算的主要组成部分。
1)函数在计算中显示为蓝色,每个函数都有特定的语法。
例如:新建定时任务并在数据转换中新增计算列,单击「添加字段值」,将出现一个「函数列表」。紧接着是「字段选择位置」,从函数列表中选择函数时,最右侧的部分将更新,包含有关该函数的必需语法和说明的信息,并带有一个或多个示例,如下图所示:
2)可以在计算中使用多个函数。例如:IF(SIGN(利润)=1,利润,0)
该计算中有两个函数:IF、SIGN。
函数包括在另一个函数中(即嵌套),上面示例就是这种情况。在这种情况下,将在计算 IF 函数之前先计算「利润」的 SIGN 函数,因为后者在括号内部。
3.2 字段语法
可以在计算中插入字段。函数的语法通常会指明应在计算中的何处插入字段。例如:CONCATENATE(文本1, 文本2,……)。
例如:如果要将「货主国家」和「货主城市」两字段进行合并,输入公式:CONCATENATE(货主国家,货主城市),在左侧的字段选择区域点击选择需要的字段,如下图所示:
注:字段显示为浅蓝色底。
3.3 运算符语法
若要创建计算,需要了解支持的运算符。运算符在计算中显示为黑色。
3.3.1 四则运算
运算符 | 说明 | 参数类型与对应计算逻辑 | 示例 | 结果类型 |
---|---|---|---|---|
+ | 数值相加 日期计算 文本拼接 | 文本 + 文本 / 数值 / 日期时间 / 布尔
日期时间 + 数值X(数值X + 日期时间)(逻辑同ADDTODATE)
数值X + 数值Y
注:不支持日期+日期操作 | 3 + 3 | 1)文本 + 文本 / 数值 / 日期时间 / 布尔:文本类型 2)日期时间 + 数值X(数值X + 日期时间):日期时间类型 3)数值X + 数值Y:数值类型 |
/ | 数值相除 | 布尔类型,FALSE视为数值0,TRUE视为数值1参与运算 数值 / 数值,数值相除 | 15 / 3 | 数值类型 运算数中存在NULL,结果为NULL 除数为 0 时,结果为NULL 注:该操作符两端必须为数值类型 |
* | 数值相乘 | 布尔类型,FALSE视为数值0,TRUE视为数值1参与运算 数值 * 数值,数值相乘 | 3 * 3 | 数值类型 运算数中存在NULL,结果为NULL 注:该操作符两端必须为数值类型 |
- | 数值相减 日期计算 | 布尔类型,FALSE视为数值0,TRUE视为数值1参与运算 数值X - 数值Y,数值减 日期时间 - 数值X(逻辑同ADDTODATE),计算指定日期X天前的日期 日期时间 - 日期时间,计算指定日期时间之间的毫秒数 | 3 - 1 | 1)数值X - 数值Y:数值类型 2)日期时间 - 数值X:日期时间类型 3)日期时间 - 日期时间:数值类型 4)运算数中存在NULL,结果为NULL 注:不支持数值-日期操作;文本类型不能作为减数或被减数 |
3.3.2 比较运算
运算符 | 说明 | 参数类型与对应计算逻辑 | 示例 | 结果类型 |
---|---|---|---|---|
> < >= <= = == != | 比较运算 | 文本、数值、日期时间、布尔 1)>、<、>=、<=:要求比较符两侧必须是同类型,不进行自动转换 2)=、==、!=:不要求比较符两侧类型,类型不一致视为不等,类型一致再进行值比较 =和==视为等价输入 | A1 > B1 A1 < B1 A1 >= B1 A1 <= B1 A1 = B1 A1 == B1 A1 != B1 | 布尔类型 运算数中存在NULL,结果为NULL 先判断类型,后判断NULL值情况 |
3.3.3 逻辑运算
运算符 | 说明 | 参数类型与对应计算逻辑 | 示例 | 结果类型 |
---|---|---|---|---|
! | 逻辑非 | 布尔类型 FALSE视为数值0,TRUE视为数值1参与运算 对于数值类型数据:
| !A:如果 A 是 true,!A 是 false。 | 布尔类型 运算数中存在NULL,结果为NULL |
3.3.4 优先级
运算符 | 说明 | 参数类型与对应计算逻辑 | 结果类型 |
---|---|---|---|
() | 提高运算优先级 | - | - |
3.4 常量写法
文本表达式「按原样」表示常量值。使用函数时,有时需要使用文本表达式表示数字、字符串等。
表达式种类 | 说明 |
---|---|
文本 | 用双引号包括的内容 |
数值 | 无符号包括的数字 |
NULL | 直接写 NULL 即可 大小写均有效 |
布尔 | 直接写 TRUE、FALSE 即可 大小写均有效 |