语法:
<对齐的计算式> [按照 <有序集合或其他表>] [拼接列 {<原列名> [命名 <新列名>]}] [仅排序] [保留其他] [分区 <分区字段>]
参数:<对齐的计算式> [按照]
这两个参数必须一起用。参数对齐的计算式,是一个与焦点表字段有关的计算式,其计算结果用于对齐,可以是单列(属于一种表达式)。必要参数,无参数值时表示缺省用上下文中的焦点列做对齐的列;类型是计算式;必须省略参数名。
参数按照表示对齐的基准,假定值不重复,可以是有序集合,也可是其他表,是其他表时表示用该表的主键的列值做基准,无主键时用第1列的列值做基准。必要参数;类型是有序集合、表、有序集合标识、表标识;不能省略参数名。
注意事项:如果参数按照含有焦点表没有的字段值,则缺省应该在相应的位置插入缺失的记录,这条记录只有该字段值,其他字段为空。反之,如果焦点表含有参数按照没有的字段值,则缺省要删掉这些记录。这是对齐功能的重要特性。
例子:
员工表当前数据如下:
EId Dept Name Salary
2 HR Ashley 11000
3 Sales Rachel 9000
4 HR Emily 7000
5 Sales Ashley 16000
6 Marketing Matthew 11000
目标:将员工表用Dept字段按照["Sales","R&D","HR"]对齐。
NLC:对齐 Dept; 按照 ["Sales","R&D","HR"]
结果:
EId Dept Name Salary
3 Sales Rachel 9000
5 Sales Ashley 16000
R&D
2 HR Ashley 11000
4 HR Emily 7000
解释:焦点表没有有序集合中的"R&D",但比有序集合多了"Marketing",按照参数的注意事项,要在Sales和HR对应的记录之间插入新记录,该记录只有Dept的只是"R&D",其他字段为空;要删掉"Marketing"对应的记录。
参数:拼接列
当参数按照是其他表时,可以用本参数将该表的其他列(除了基准列之外的列)拼到焦点表的后面。非必要参数;复合参数;参数名不能省略。本参数是复合参数,由一对或多对子参数组成,即子参数原列名和子参数命名,每一对参数代表其他表中的一个列。
其中,子参数原列名是其他表中的一个列名(包括序号列#),将拼到焦点表上。必要参数;类型是列标识;参数名必须省略。
其中,子参数命名是将原列名拼接到焦点表之后要改成的新名字。非必要参数,默认保持原名;类型是列标识;参数名不能省略。
例子:
将员工表(焦点表)的Dept字段按照部门表的主键列(DeptID)对齐,拼上部门表的部门名、经理字段,其中,经理改名为经理姓名。
NLC:对齐 Dept; 部门表; 拼接列 部门名称, 经理 命名 经理姓名。
参数:仅排序
如果参数按照含有焦点表没有的字段值,则缺省应该在相应的位置插入缺失的记录。本参数是对这个缺省规则的修正,即使用本参数后,不再插入缺失的记录。非必要参数;布尔类型,不能省略参数名,必须省略参数值。
例子:
将员工表用Dept字段按照["Sales","R&D","HR"]对齐,仅排序,不要补充缺失的记录
NLC:对齐 Dept; 按照 ["Sales","R&D","HR"]; 仅排序
结果:
EId Dept Name Salary
3 Sales Rachel 9000
5 Sales Ashley 16000
2 HR Ashley 11000
4 HR Emily 7000
参数:保留其他
如果焦点表含有参数按照没有的字段值,缺省要删掉这些记录。本参数是对这个缺省规则的修正,即使用本参数后,不再删掉这些记录,而是把这些记录排在焦点表的最后。非必要参数;类型是布尔;参数名不能省略,参数值必须省略。
例子:
将员工表用Dept字段按照["Sales","R&D","HR"]对齐,保留员工表中无法对齐的记录。
EId Dept Name Salary
3 Sales Rachel 9000
5 Sales Ashley 16000
R&D
2 HR Ashley 11000
4 HR Emily 7000
6 Marketing Matthew 11000
参数:分区
按分区进行对齐,各区之间互不影响,即将各分区的记录分别对齐相同的参数按照,概念上类似SQL的PARTITION BY。非必要参数;标识类型;参数名不能省略。
例子:
把订单例子表的每个客户的记录,用产品类型字段按照集合"小家电","纺织品","食品"对齐。
NLC:对齐 产品类型; 按照 ["小家电","纺织品","食品"]; 分区 客户