表达式使用

Analytics 表达式是执行计算并返回结果的值和运算符的组合。

表达式是一种宝贵和灵活的工具。您可以使用它们来:

  • 执行广泛的计算
  • 创建过滤器
  • 为分析准备数据
  • 创建计算域

表达式的内容

表达式可以包括数据域、函数、文字、常量和变量,可以结合用于算术或逻辑运算符。

您可以手动输入表达式,或者您也可以使用表达式生成器创建表达式,后者提供一种在整个 Analytics 中创建表达式的标准工具。

表达式的复杂性

表达式可以根据需要变得简单或复杂。

简单表达式可以返回基本算术运算的结果。

例如:

Quantity * Cost

一个更复杂的表达可能会引用一些域和函数,并使用运算符组合表达式的组成部分。

例如:

PROPER(名字) + " " + PROPER(姓氏)

名字姓氏域中的所有名称转换为适当的大小写形式(首字母大写,后面跟小写字母),并用其间的单个空格连接名字和姓氏。

表达式类型

Analytics 支持四个类型的表达式,分别对应于四个受支持的数据类别,即数据类型:

  • 字符
  • 数值
  • 日期时间
  • 逻辑

例如:

  • 金额 + 1 是一个数值表达式,因为它对数字执行运算并返回数值结果。
  • 金额 > 1 是一个逻辑表达式,因为它进行比较并返回逻辑结果“真”或“假”。

您创建的任何表达式的内容必须与表达式类型相对应:

表达式类型 所需的内容 示例
字符 包含下列任一内容:
  • 字符域
  • 包含字符数据的变量
  • 返回字符值的函数
  • 带引号的字符串(字符字面量)

从产品代码中提取数字并丢弃三字符前缀:

  • SUBSTR(产品代码, 4, 10)
数值 包含下列任一内容:
  • 数值域
  • 包含数值数据的变量
  • 返回数值类型值的函数
  • 字面量数值类型值,不带引号 – 仅限于数字、一个减号(如果需要)和一个小数点(如果需要)

计算含税销售价格:

  • 销售价格 * 1.07

寻找三个域中的最大值:

  • MAXIMUM(Min_Qty, Qty_on_hand, Qty_on_order)
日期时间 包含下列任一内容:
  • 日期时间域
  • 包含日期时间数据的变量
  • 返回日期时间值的函数
  • 带引号的日期时间值(日期时间字面量)

日期时间数据类型包括三个子类型:日期、日期时间和时间。

带引号的日期时间值需要使用反引号 - 例如,`20141231``20141231.235959`。反引号(')是键盘左上角的小写键。

计算两个日期之间经过的天数:

  • `20141231` - `20141130`

计算两个时间域中的值之间经过的时间:

  • 结束时间 - 开始时间
逻辑 包含下列任一内容:
  • 一个生成逻辑结果“真”或者“假”(T 或 F)的操作
  • 返回逻辑值的函数

如果 TF 是表达式的一部分,则输入时必须不带引号。

说明

逻辑表达式可以引用任何数据类型的域、变量或字面量。

查找其付款日期已过到期日期的所有记录:

  • 付款日期 > 到期日期

按三个城市过滤表中的记录:

  • MATCH(供应商城市, "Phoenix", "Austin", "Los Angeles")

Analytics 对表达式求值的方法

Analytics 按照下列规则对表达式求值:

运算符优先级 算术和逻辑优先级指定对运算符进行求值的顺序。请参见Analytics 表达式中的运算符

请使用括号 ( ) 修改运算符的求值顺序。

运算数数据类型 只有当运算数具有兼容数据类型时,每个运算符才能正常工作。
函数括号 所有 Analytics 函数都需要括号。首先对函数括号内的一切内容进行求值,然后对表达式的任何其他位于函数括号外部的部分求值。
比较字符串 默认情况下,比较两个不同长度的字符串时,使用较短的长度。

如果在 选项对话框的选项卡中选择了精确字符比较 选项,则使用两者中较长的一个。

要了解更多信息,请参考“表”选项卡(“选项”对话框)

小数精度

如果在数值表达式中混用了具有不同小数精度的数字,则结果会保留具有最大小数位数的运算数的小数位数。(使用 SET MATH 命令可以更改此默认行为。)

例如:

  • 4 + 5.0 = 9.0
  • 6 * 2.000000 = 12.000000
  • 1.1 * 1.1 = 1.2
  • 1.1 * 1.10 = 1.21

要了解更多信息,请参考控制数值表达式中的取整和小数精度

Analytics 表达式中的运算符

下表列出了在创建表达式时可供使用的运算符。

这些运算符按照优先级的降序列出。当具有相等优先级的运算符出现在一个表达式中时,将从左到右评估它们 – 除非您使用圆括号指定特定评估顺序。

 

运算符(按优先级顺序)

描述

( )

圆括号 – 指定运算符优先顺序,或者将函数参数围起来

NOT

-

逻辑非

一元减号 – 减号,表示负数

^

幂 – 将数字提升为幂

*

/

运算符具有相等优先级并且按照从左到右的顺序计算

+

-

运算符具有相等优先级并且按照从左到右的顺序计算

添加

减法

+

连接字符串

>

<

=

>=

<=

<>

运算符具有相等优先级并且按照从左到右的顺序计算

说明

包含两个符号的运算符不得包含空格。例如,请键入 >= 而非 > =

大于

小于

等于

大于或等于

小于或等于

不等于

AND(或 &

逻辑与

OR(或 |

逻辑或

Analytics 14.1 帮助