Declare

Declare 语句用于创建字段和组定义,您可以在其中定义字段或函数之间的关系。可以使用一组字段定义来自动生成可用作维度的导出字段。例如,您可以创建日历定义,并用它来从日期字段生成相关的维度,如年份、月份、周和日期。

您可以使用 Declare 设置新的字段定义,或者根据现有定义创建字段定义。

设置新的字段定义

Syntax:

definition_name:

Declare [Field[s]] Definition [Tagged tag_list ]

[Parameters parameter_list ]

Fields field_list 

Arguments:

参数 说明
definition_name

字段定义的名称,以冒号为结尾。

警告: 请勿将 autoCalendar 用作字段定义的名字,因为该名称保留用于自动生成的日历模板。

Example:  

Calendar:

tag_list

以逗号分隔的标记列表,要应用到根据字段定义导出的字段。应用标记是可选的,但如果不应用用于指定排序顺序的标记,如 $date$numeric$text,则导出字段将默认按加载顺序排序。

Example:  

'$date'

字段标签

parameter_list

以逗号分隔的参数列表。定义的参数的格式为 name=value 且已分配初始值,在重新使用字段定义时可以将其覆盖。可选。

Example:  

first_month_of_year = 1

field_list

在使用字段定义时生成的以逗号分隔的字段列表。定义的字段的格式为 <expression> As field_name tagged tag。使用 $1 来引用应根据导出的字段生成的数据字段。

Example:  

Year($1) As Year tagged '$year'

Example:

Calendar: DECLARE FIELD DEFINITION TAGGED '$date' Parameters first_month_of_year = 1 Fields
Year($1) As Year Tagged ('$numeric'), Month($1) as Month Tagged ('$numeric'), Date($1) as Date Tagged ('$date'), Week($1) as Week Tagged ('$numeric'), Weekday($1) as Weekday Tagged ('$numeric'), DayNumberOfYear($1, first_month_of_year) as DayNumberOfYear Tagged ('$numeric') ;
 

现在,已经定义日历,您可以将其应用到已加载的日期字段,在此例中为使用 Derive 子句的 OrderDateShippingDate

导出的字段 (完整示例)

重复使用现有的字段定义

Syntax:

<definition name>:

Declare [Field][s] Definition

Using <existing_definition> 

[With <parameter_assignment> ]

Arguments:

参数 说明
definition_name

字段定义的名称,以冒号为结尾。

Example:  

MyCalendar:

existing_definition

在创建新的字段定义时要重复使用字段定义。新的字段定义与它基于的定义具有相同的功能,不包括如果您使用 parameter_assignment 更改在字段表达式中使用的值。

Example:  

Using Calendar

parameter_assignment

以逗号分隔的参数赋值列表。定义的参数赋值的格式为 name=value,并且将覆盖在基本字段定义中所设置的参数值。可选。

Example:  

first_month_of_year = 4

Example:

在此例中,我们重复使用在前面的示例中所创建的日历定义。在这种情况下,我们想要使用从四月份开始的财政年。这可以通过将值 4 赋给 first_month_of_year 参数来实现,这会影响到所定义的 DayNumberOfYear 字段。

下例假设您使用样本数据和前面示例中的字段定义。

MyCalendar: DECLARE FIELD DEFINITION USING Calendar WITH first_month_of_year=4;
 
DERIVE FIELDS FROM FIELDS OrderDate,ShippingDate USING MyCalendar;
 

当您重新加载数据脚本时,在表格编辑器中提供了所生成的字段,且名称为 OrderDate.MyCalendar.*ShippingDate.MyCalendar.*

See also: