描述:
将多个排列完全叉乘起来。
语法:
xjoin(Ai:Fi,xi;…)
备注:
将Ai排列无条件叉乘起来,组成一个新序表,新序表由字段Fi,…组成,每个Fi引用原序列Ai的一个成员。叉乘过程中,过滤出Ai中满足条件xi的成员
参数:
Fi |
代表结果序表的字段名 |
Ai |
用于叉乘的排列 |
xi |
过滤表达式 |
选项:
@1 |
左连接,Ai中无成员可匹配时用null匹配。(注意:这里是数字1) |
返回值:
新的序表,分别引用原排列中的成员
示例:
|
A |
|
1 |
=create(Year).record([2000,2001]) |
|
2 |
=create(QuarterID, QuarterNmae). record([1,"one",2,"two",3,"three",4,"four"]) |
|
3 |
=xjoin(A1:Year;A2:Quarter) |
|
4 |
=create(Month).record(to(12)) |
|
5 |
=xjoin(A2:Quarter;A4:Month,Month>(Quarter.QuarterID-1)*3 && Month<=Quarter. QuarterID*3) |
通过叉乘,动态的计算过滤表达式。过滤表达式可以参考上一个字段的当前值。 |
6 |
=create(Year).record([2000,2001]) |
|
7 |
=create(ID,Value).record([2001,"one",2002,"two",2003,"three",2004,"four"]) |
|
8 |
=xjoin(A6:f1;A7:f2,f1.Year==ID) |
|
9 |
=xjoin@1(A6:f1;A7:f2,f1.Year==ID) |
通过条件过滤后,左连接方式叉乘,无成员可匹配时用null匹配 |
10 |
=join(A5:Employee;A6:Familymembers) |
|
11 |
=xjoin(A1:Year1;A2:Quarter1) |
|
12 |
=xjoin(A3:Year2;A11:Quarter2) |
|
注意:
join()与xjoin ()的区别:
join()是将多个序列Ai按照关联字段/关联表达式xi和x1相等的关系叉乘,产生以Fi,…为字段的序表。此时xi是关联字段或者关联表达式。
xjoin()是将多个序列Ai无关联条件的叉乘,产生以Fi,…为字段的序表,只是在叉乘过程中,过滤掉各自Ai中不满足xi条件的记录。此时xi是过滤条件。
相关概念: