表达式语言详细信息
了解表达式语言的工作原理后,创建有效的表达式就会变得更加简单。本主题会尝试说明该语言的一些基本功能。
[
”和“]
”字符(方括号)中。当列名称与函数名称相同,或者列名称以数字开头时,也需要使用方括号。例如:[Column 1]
[Sum]
<>
,便会将它视作分类形式。例如:<[Category column 1]>
[Column1],[Column2]
AS
关键字指定表达式的新名称,同时隐藏其基础表达式。例如:[Column1]/([Column1]+[Column2])AS Quota
请注意,如果轴表达式包含冒号,便无法重命名整个轴,但是您可以为表达式的每一个部分定义一个名称:
[Column1] AS [My first column], [Column2] AS [My second column]
39+12*3
-(1-2)
[Data Table Name].[Column Name]
。例如:Sum([Data Table 2].[Column1])
表达式中的注释
如果创建的表达式比较复杂,需要解释,可以在表达式中添加注释。用“//”来指定符号后面的文本是注释。
例如:
Avg([Sales]) OVER Intersect([Cat], AllPrevious([Year])) //显示截至当前年度的所有年度每个类别的平均销售额。
[销售额]/1000 ///销售数字除以 1000,以 kkr 为单位显示,而不是以 SEK 为单位。
请注意,如果在图表轴上为表达式添加注释,则需要继续使用自定义表达式对话框进行所有进一步的编辑。这是因为拖放操作对表达式的影响太大,重新排列太多,无法保留注释。
转义特殊字符
由于某些字符在 Spotfire 表达式语言中具有特殊含义,因而如果您需要将那些字符用于其他用途(例如将其包含在列名称中),则必须执行一些操作。
转义字符是一种特殊字符,用于告知表达式语言:以字符顺序排列的下列字符应被视作标准字符,而不是执行其特殊目的项目。
如果列名称包含任何方括号,则必须将这些方括号进行转义。通过在此括号前后添加其他括号,可对括号进行转义:“[
”和“]]
”。例如,如果列名称为 [Name]
,其在表达式中将会写为 [[Name]]]
。使用“添加计算的列”对话框(仅限已安装的客户端)中的“插入列””按钮添加列时,将自动获得正确的列名称转义。
区分大小写
表达式结果
表达式说明了应如何计算新列。新创建的列与数据表中的所有其他列具有相同数量的行。默认的空值处理行为是空值返回空值的操作。这表示如果新列的计算公式为 [Column A]*2
并且列 A 的某些行中存在空值,则新列在这些行上也将具有空值。
类别表达式(NEST 和 CROSS)
<[Category column 1] nest [Category column 2]>
例如,如果您有一个包含两年中每个月某些销售数据的数据表,但缺少 2020 年中二月的数据,不同选项将带来以下结果:
Nest

<[Year] NEST [Month]>
Cross

<CROSS [Year] CROSS [Month]>
(第一个 CROSS 是可选的。)
验证值
当数据表中缺少列值、计算中涉及到无效值或在表达式中明确写入了空值
时均会生成空值。如果结果为 null
,则显示为“(空)”
或直接留空。可以使用 SN() 函数替换空值。
当在列内聚合时,无效值将被忽略,而每当其中一个涉及的列包含无效值时,列之间行明智的计算将导致出现无效值。
- 运算符
可在自定义或计算表达式中使用的运算符的列表。 - 函数
表达式中可以使用许多不同的函数。 - 数据类型
该列表显示了可用的数据类型。 - 表达式中的属性
Spotfire 中有以下三种类型的属性,您可以在表达式中使用它们以及控制不同的设置:文档属性、数据表属性和列属性。属性能够以两种方式解释,即可用于替代列名称或度量值的实际值或文本值。 - 表达式和脚本编辑器键盘快捷方式
通过已安装的客户端使用表达式时,可以在许多表达式或脚本编辑字段中使用键盘快捷方式。