历史版本8 :函数计算格式 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

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 四则运算

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

    日期计算

    文本拼接

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

    • 日期时间将转换为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

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

    3.3.2 比较运算

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

    >

    <

    >=

    <=

    =

    ==

    !=

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

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

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

    =和==视为等价输入

    布尔类型

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

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

    3.3.3 逻辑运算

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

    布尔类型

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

    对于数值类型数据:

    • 非 0 值视为真

    • 0 值视为假

    布尔类型

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

    3.3.4 优先级

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

    3.4 常量写法

    文本表达式「按原样」表示常量值。使用函数时,有时需要使用文本表达式表示数字、字符串等。

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

    大小写均有效

    布尔直接写 TRUE、FALSE 即可

    大小写均有效