功能:
将数据按照指定方式对齐。
语法:
对齐 <对齐的计算式> [按照 <有序集合或其他表>] [用 <基准表达式>] [拼接列 {<原列名> [命名 <新列名>]}] [仅排序] [保留其他] [分区 <分区字段>]
参数:对齐的计算式 按照
这两个参数必须一起用。
参数对齐的计算式,焦点表中用于对齐的字段或表达式。必填,省略参数名。
参数按照,对齐的基准,可以是有序集合或其他表,是其他表时缺省用该表的主键列值做基准,无主键时用第1列的列值做基准,也可以用参数用显式指定基准表达式。必填,不可省略参数名。
注意事项:焦点表中有但参数按照中没有的值会被删除;参数按照中有但焦点表没有的值会插入缺失记录。其他字段为null。
示例:
EMPLOYEE表数据如下:
|
EID |
NAME |
GENDER |
DEPT |
SALARY |
|
1 |
Rebecca |
F |
R&D |
7000 |
|
2 |
Ashley |
F |
Finance |
11000 |
|
3 |
Rachel |
F |
Sales |
9000 |
|
4 |
Emily |
F |
HR |
7000 |
|
5 |
Ashley |
F |
R&D |
16000 |
|
6 |
Matthew |
M |
Sales |
11000 |
|
7 |
Alexis |
F |
Sales |
9000 |
|
8 |
Megan |
F |
Marketing |
11000 |
|
9 |
Victoria |
F |
HR |
3000 |
|
10 |
Ryan |
M |
R&D |
13000 |
对齐 GENDER 按照 ["M","F"] //焦点表为EMPLOYEE表,将EMPLOYEE表用字段GENDER按照["M","F"]对齐,结果如下:
|
EID |
NAME |
GENDER |
DEPT |
SALARY |
|
6 |
Matthew |
M |
1984-07-07 |
2005-07-07 |
|
10 |
Ryan |
M |
1976-03-12 |
2006-03-12 |
|
1 |
Rebecca |
F |
1974-11-20 |
2005-03-11 |
|
2 |
Ashley |
F |
1980-07-19 |
2008-03-16 |
|
3 |
Rachel |
F |
1970-12-17 |
2010-12-01 |
|
4 |
Emily |
F |
1985-03-07 |
2006-08-15 |
|
5 |
Ashley |
F |
1975-05-13 |
2004-07-30 |
|
7 |
Alexis |
F |
1972-08-16 |
2002-08-16 |
|
8 |
Megan |
F |
1979-04-19 |
1984-04-19 |
|
9 |
Victoria |
F |
1983-12-07 |
2009-12-07 |
DEPARTMENT表数据如下:
|
DEPT |
MANAGER |
|
Administration |
1 |
|
Sales |
3 |
|
Finance |
4 |
|
HR |
5 |
|
Marketing |
6 |
对齐 DEPT 按照 DEPARTMENT //焦点表为EMPLOYEE表,将EMPLOYEE表用字段DEPT按照DEPARTMENT表第1列的列值对齐,结果如下:
|
EID |
NAME |
GENDER |
BIRTHDAY |
HIREDATE |
DEPT |
SALARY |
|
|
|
|
|
|
Administration |
|
|
3 |
Rachel |
F |
1970-12-17 |
2010-12-01 |
Sales |
9000 |
|
6 |
Matthew |
M |
1984-07-07 |
2005-07-07 |
Sales |
11000 |
|
7 |
Alexis |
F |
1972-08-16 |
2002-08-16 |
Sales |
9000 |
|
2 |
Ashley |
F |
1980-07-19 |
2008-03-16 |
Finance |
11000 |
|
4 |
Emily |
F |
1985-03-07 |
2006-08-15 |
HR |
7000 |
|
9 |
Victoria |
F |
1983-12-07 |
2009-12-07 |
HR |
3000 |
|
8 |
Megan |
F |
1979-04-19 |
1984-04-19 |
Marketing |
11000 |
解释:焦点表没有”Administration”,但比有序集合多了" R&D",按照参数的注意事项,要插入新记录,该记录Dept值是”Administration”,其他字段为null;同时要删掉" R&D"对应的记录。
参数:用 <基准表达式>
当参数按照是其他表时,用基准表达式指定作为对齐基准的列。缺省用主键列值做基准,无主键时用第1列的列值做基准。
可选,不能省略参数名。
示例:
对齐 DEPT按照 EMPLOYEE用 DEPT // 焦点表为DEPARTMENT表,将DEPARTMENT表用字段DEPT按照EMPLOYEE的DEPT列值对齐,结果如下:
|
DEPT |
MANAGER |
|
R&D |
|
|
Finance |
4 |
|
Sales |
3 |
|
HR |
5 |
|
R&D |
|
|
Sales |
|
|
Sales |
|
|
Marketing |
6 |
|
HR |
|
|
R&D |
|
参数:拼接列
当参数按照是其他表时,将该表的其他列拼到焦点表的后面。
非必要参数;复合参数;参数名不能省略。本参数是复合参数,由原列名和命名组成,多对表示拼接多个列。
子参数原列名是其他表中的一个列名(包括序号列#),将拼到焦点表上。必填,省略参数名。
子参数命名是将原列名拼接到焦点表之后的新列名。可选。不可省略参数名,缺省保持原名。
示例:
对齐 DEPT 按照 EMPLOYEE 用 DEPT 拼接列 NAME 命名 M_NAME //将DEPARTMENT表(焦点表)的DEPT字段按照EMPLOYEE表的DEPT列对齐,拼上EMPLOYEE表的NAME字段,并将NAME字段改名为M_NAME,结果如下:
|
DEPT |
MANAGER |
M_NAME |
|
R&D |
|
Rebecca |
|
Finance |
4 |
Ashley |
|
Sales |
3 |
Rachel |
|
HR |
5 |
Emily |
|
R&D |
|
Ashley |
|
Sales |
|
Matthew |
|
Sales |
|
Alexis |
|
Marketing |
6 |
Megan |
|
HR |
|
Victoria |
|
R&D |
|
Ryan |
参数:仅排序
如果参数按照中有而焦点表没有的字段值,不插入缺失记录,值排序。缺省会插入缺失记录。
可选,不可省略参数名。
示例:
对齐 DEPT 按照 ["Sales","Administration","HR"] 仅排序 //将EMPLOYEE表(焦点表)用DEPT字段按照["Sales","Administration","HR"]对齐,仅排序,不要补充缺失的记录,结果如下:
|
EID |
NAME |
GENDER |
BIRTHDAY |
HIREDATE |
DEPT |
SALARY |
|
3 |
Rachel |
F |
1970-12-17 |
2010-12-01 |
Sales |
9000 |
|
6 |
Matthew |
M |
1984-07-07 |
2005-07-07 |
Sales |
11000 |
|
7 |
Alexis |
F |
1972-08-16 |
2002-08-16 |
Sales |
9000 |
|
4 |
Emily |
F |
1985-03-07 |
2006-08-15 |
HR |
7000 |
|
9 |
Victoria |
F |
1983-12-07 |
2009-12-07 |
HR |
3000 |
参数:保留其他
如果焦点表中有参数按照没有的字段值,不删除无法对齐的记录,而是把这些记录排在焦点表的最后。缺省会删掉这些记录。
可选,不可省略参数名。
示例:
对齐 DEPT 按照 ["Sales","Administration","HR"] 仅排序 ; 保留其它 //将EMPLOYEE表(焦点表)用DEPT字段按照["Sales","Administration","HR"]对齐,仅排序,不要补充缺失的记录,保留员工表中无法对齐的记录,结果如下:
|
EID |
NAME |
GENDER |
BIRTHDAY |
HIREDATE |
DEPT |
SALARY |
|
3 |
Rachel |
F |
1970-12-17 |
2010-12-01 |
Sales |
9000 |
|
6 |
Matthew |
M |
1984-07-07 |
2005-07-07 |
Sales |
11000 |
|
7 |
Alexis |
F |
1972-08-16 |
2002-08-16 |
Sales |
9000 |
|
4 |
Emily |
F |
1985-03-07 |
2006-08-15 |
HR |
7000 |
|
9 |
Victoria |
F |
1983-12-07 |
2009-12-07 |
HR |
3000 |
|
1 |
Rebecca |
F |
1974-11-20 |
2005-03-11 |
R&D |
7000 |
|
2 |
Ashley |
F |
1980-07-19 |
2008-03-16 |
Finance |
11000 |
|
5 |
Ashley |
F |
1975-05-13 |
2004-07-30 |
R&D |
16000 |
|
8 |
Megan |
F |
1979-04-19 |
1984-04-19 |
Marketing |
11000 |
|
10 |
Ryan |
M |
1976-03-12 |
2006-03-12 |
R&D |
13000 |
参数:分区
按分区进行对齐,即将各分区的记录分别对齐相同的基准,概念上类似SQL的PARTITION BY。
可选,不可省略参数名。
示例:
对齐 DEPT 按照 ["Sales","Administration","HR"] 分区 GENDER //将EMPLOYEE表(焦点表)的每个性别的记录,用DEPT字段按照集合["Sales","Administration","HR"]对齐,结果如下:
|
EID |
NAME |
GENDER |
BIRTHDAY |
HIREDATE |
DEPT |
SALARY |
|
3 |
Rachel |
F |
1970-12-17 |
2010-12-01 |
Sales |
9000 |
|
7 |
Alexis |
F |
1972-08-16 |
2002-08-16 |
Sales |
9000 |
|
|
|
F |
|
|
Administration |
|
|
4 |
Emily |
F |
1985-03-07 |
2006-08-15 |
HR |
7000 |
|
9 |
Victoria |
F |
1983-12-07 |
2009-12-07 |
HR |
3000 |
|
6 |
Matthew |
M |
1984-07-07 |
2005-07-07 |
Sales |
11000 |
|
|
|
M |
|
|
Administration |
|
|
|
|
M |
|
|
HR |
|