描述:
归并计算,将多个序表/排列合并。
语法:
备注:
将序列A的成员按照字段xi有序归并。
缺省认为A(i)对[xi,…]有序;xi省略且A(i)无主键或者A(i)无序时,必须使用@o选项,仅简单合并。
参数:
|
A |
结构相同的多个序表/排列组成的序列。 |
|
xi |
字段名,如果是按照多字段合并,字段间用逗号分隔,例如:x1,x2...。 xi缺省为A(i)的主键。 |
选项:
|
@u |
A(i)的成员按顺序合并到一起组成新的序表/排列,去掉重复的成员。xi相同则认为对应的A(i)成员相同。 |
|
@i |
返回A(i)共同的成员组成的序表/排列。 |
|
@d |
从A(1)中去掉A(2) &…A(n)中的成员后形成的新序表/排列。 |
|
@o |
不假定A(i)对[xi,…]有序,不使用归并计算仅简单合并。 |
|
@0 |
null排最后。 |
|
@x |
返回A(i)去掉共同的成员组成的序表/序列。 |
返回值:
序表/排列
示例:
有序归并:
|
|
A |
|
|
1 |
=demo.query("select top 6 * from DEPT order by FATHER ").sort(DEPTID,DEPTNAME) |
返回字段DEPTID,DEPTNAME对有序的序表:
|
|
2 |
=demo.query("select * from DEPT where DEPTID <8 order by FATHER").sort(DEPTID,DEPTNAME) |
返回字段DEPTID,DEPTNAME对有序的序表:
|
|
3 |
=[A1,A2].merge(DEPTID,DEPTNAME) |
将A1和A2按照DEPTID,DEPTNAME有序合并:
|
xi缺省为A(i)的主键,按主键归并:
|
|
A |
|
|
1 |
=connect("demo").query("select top 6 * from DEPT order by FATHER ").keys(DEPTID).sort(DEPTID) |
返回以DEPTID为主键的序表:
|
|
2 |
=connect("demo").query("select * from DEPT where DEPTID <8 order by FATHER").keys(DEPTID).sort(DEPTID) |
返回以DEPTID为主键的序表:
|
|
3 |
=[A1,A2].merge() |
省略xi参数,按主键DEPTID归并:
|
多种有序归并方式:
|
|
A |
|
|
1 |
=connect("demo").query("select top 6 * from DEPT order by FATHER ").keys(DEPTID).sort(DEPTID) |
返回以DEPTID为主键的序表:
|
|
2 |
=connect("demo").query("select * from DEPT where DEPTID <8 order by FATHER").keys(DEPTID).sort(DEPTID) |
返回以DEPTID为主键的序表:
|
|
3 |
=[A1,A2].merge@u() |
xi参数省略,按主键有序归并,使用@u选项,并去掉DEPTID重复的成员:
|
|
4 |
=[A1,A2].merge@i() |
xi参数省略,按主键有序归并,使用@i选项,只保留[A1,A2]中重复的成员:
|
|
5 |
=[A1,A2].merge@d() |
xi参数省略,按主键有序归并,使用@d选项,返回A1中去除A2成员后的剩余成员组成的序列:
|
|
6 |
=[A1,A2].merge@x() |
xi参数省略,按主键有序归并,使用@x选项,返回[A1,A2]去掉共同成员后剩余成员组成的序列:
|
使用@o选项,不使用有序归并,仅简单合并:
|
|
A |
|
|
1 |
=connect("demo").query("select top 6 * from DEPT order by FATHER ") |
返回序表:
|
|
2 |
=connect("demo").query("select * from DEPT where DEPTID <8 order by FATHER") |
返回序表:
|
|
3 |
=[A1,A2].merge@o() |
A1、A2数据无序,使用@o选项,仅简单合并,不排序:
|
用@0选项,null排到最后:
|
|
A |
|
|
1 |
=connect("demo").query("select top 6 * from DEPT order by FATHER ").keys(DEPTID).sort(DEPTID) |
A1返回序表如下:
|
|
2 |
=connect("demo").query("select * from DEPT where DEPTID <8 order by FATHER").keys(DEPTID).sort(DEPTID) |
|
|
3 |
=A2(7).modify(null:DEPTID) |
此时A2序表内容如下:
|
|
4 |
=[A1,A2].merge() |
|
|
5 |
=[A1,A2].merge@0() |
xi参数省略,按主键有序归并,使用@0选项,将DEPTID 为null的记录排到最后:
|