本章介绍conj()的多种用法。
描述:
计算序列中各个序列成员的和列
语法:
A.conj(x)
备注:
计算序列A中各个序列成员的和列,使得他们成为一个序列。有参数x时,循环计算x后再和列。
选项:
@r |
递归计算到所有成员不再是序列为止 |
参数:
A |
成员为序列的序列 |
x |
表达式 |
返回值:
序列A和列后生成的新序列
示例:
|
A |
|
1 |
=[[1,2,3],[4,5,6]].conj() |
返回结果:[1,2,3,4,5,6] |
2 |
=[[1,[2,3]],[2,5,6]].conj() |
返回结果:[1,[2,3],2,5,6] |
3 |
=[[1,2,3],[3],[7]].conj() |
返回结果:[1,2,3,3,7] |
4 |
=[[1,[2,3]],[2,5,6]].conj@r() |
使用@r选项,递归计算到所欲偶成员不再是序列为止,返回结果:[1,2,3,2,5,6] |
=demo.query("select EID,NAME,GENDER from EMPLOYEE where GENDER = 'M' and EID<15 order by NAME") |
|
|
6 |
=demo.query("select EID,NAME,GENDER from EMPLOYEE where GENDER = 'F' and EID<5 order by NAME") |
|
7 |
=[A5,A6].conj(~.(NAME)) |
返回A5,A6中NAME值合成的序列: |
相关概念:
描述:
拆分管道中的记录后,将拆分结果并集返回成管道。
语法:
ch.conj(…)
备注:
根据表达式…,用管道ch中的记录执行运算,将每一条记录拆分为序列或排列,并取得拆分结果中成员或记录的并集,返回成管道。
参数:
ch |
管道 |
… |
返回排列(序表)的表达式 |
返回值:
管道
示例:
|
A |
|
1 |
=demo.cursor("select * from GYMNASTICSWOMEN") |
GYMNASTICSWOMEN表内容如上图 |
2 |
=channel() |
创建管道 |
3 |
=A2.conj(create(ID,NAME,COUNTRY,SUBJECT,SCORES).record([ID,NAME,COUNTRY,"VAULT",VAULT,ID,NAME,COUNTRY, "UNEVENBARS",UNEVENBARS, ID,NAME,COUNTRY,"BALANCEBEAM",BALANCEBEAM,ID,NAME, COUNTRY,"FLOOR",FLOOR])) |
将A2管道中的记录拆分成序列,并将拆分后记录的并集返回成管道 |
3 |
=A2.fetch() |
A2管道附加结果集函数ch.fetch(),保留管道当前数据 |
4 |
=A1.push(A2) |
将游标A1中的数据推送至管道,但此时数据并不会立即进入到管道。A1执行fetch()时程序才会执行管道中的计算,游标中的数据才真正被推送到管道。 |
5 |
=A1.fetch() |
|
6 |
=A2.result() |
|
描述:
拆分游标中的记录并将拆分结果并集,返回原游标。
语法:
cs.conj(…)
备注:
根据表达式…,用游标cs中的记录执行运算,将每一条记录拆分为序列或排列,并将拆分结果中的成员或记录并在一起,返回原游标。
参数:
cs |
游标/多路游标 |
… |
返回排列(序表)的表达式 |
返回值:
原游标cs
示例:
|
A |
|
1 |
=demo.cursor("select * from GYMNASTICSWOMEN") |
GYMNASTICSWOMEN表内容如上图 |
2 |
=A1.conj(create(ID,NAME,COUNTRY,SUBJECT,SCORES).record([ID,NAME,COUNTRY,"VAULT",VAULT,ID,NAME,COUNTRY, "UNEVENBARS",UNEVENBARS,ID,NAME,COUNTRY, "BALANCEBEAM",BALANCEBEAM,ID,NAME,COUNTRY,"FLOOR",FLOOR])) |
|
3 |
=A2.fetch() |
|