本章介绍conj()的多种用法。
描述:
计算序列成员的和列。
语法:
计算序列A中各个序列成员的和列。有参数x时,循环计算表达式x后再进行和列。
A.conj(x,…)等同于A.(x,…).conj()。
选项:
@r |
递归计算到所有成员都不再是序列为止。 |
@v |
A的成员为纯序列/纯序表时返回纯序列。 |
参数:
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]。 |
5 |
=[[1,2,3],[4,5,6]] |
|
6 |
=A5.conj(~**2) |
返回结果:[2,4,6,8,10,12]。 |
7 |
=A5.(~**2).conj() |
返回结果同A5。 |
A成员为序表/排列:
|
A |
|
1 |
=demo.query("select top 4 EID,NAME,GENDER from EMPLOYEE where GENDER = 'M' ") |
|
2 |
=demo.query("select top 4 EID,NAME,GENDER from EMPLOYEE where GENDER = 'F' ") |
|
3 |
=[A1,A2].conj() |
计算[A1,A2]序列的和列,返回结果:
|
4 |
=[A1,A2].conj(~.(NAME)) |
计算[A1,A2]序列中NAME和列,返回结果: ["Matthew","Ryan","Jacob","Daniel","Rebecca","Ashley","Rachel","Emily"]。 |
5 |
=[A1,A2].(~.(NAME)).conj() |
结果同A4。 |
|
A |
|
1 |
=[1,2,3].i() |
返回纯序列。 |
2 |
=[4,5].i() |
返回纯序列。 |
3 |
=[A1,A2].conj@v() |
使用@v选项,返回纯序列。 |
4 |
=ifpure(A3) |
返回true, 判断A3是否为纯序列。 |
拆分管道中的记录并将拆分结果并集,将该计算附加到原管道。
ch.conj(x)
备注:
管道ch附加计算,ch中的记录根据计算表达式x把每条记录拆分为序列/排列,然后将拆分结果中的成员或记录并在一起,返回原管道ch。
参数:
ch |
管道。 |
x |
返回排列(序表)的表达式。 |
返回值:
管道
示例:
|
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附加计算,把管道中的字段VAULT、UNEVENBARS、BALANCEBEAM、FLOOR做列转行计算,返回原管道。 |
3 |
=A2.fetch() |
|
4 |
=A1.push(A2) |
将游标A1中的数据推送到管道,此时数据不会立即被推送到管道。 |
5 |
=A1.fetch() |
A1游标执行取数动作,此时数据才会被推送到管道,然后管道执行计算并记录结果。 |
6 |
=A2.result() |
获取管道A2计算结果:
|
拆分游标中的记录并将拆分结果并集,将该计算附加到原游标。
游标cs附加计算,cs中的记录根据计算表达式x把每条记录拆分为序列/排列,然后将拆分结果中的成员或记录并在一起,返回原游标cs。
该函数属于延迟计算函数。
参数:
cs |
游标/多路游标。 |
x |
返回排列(序表)的表达式。 |
返回值:
游标
示例:
描述:
语法:
CS.conj()
CS是游标组成的序列,针对其成员做纵向连接,结果返回多路游标,相当于合并游标中的数据。游标序列中各个游标的结构必须相同。
该函数属于延迟计算函数。
参数:
CS |
游标组成的序列。 |
返回值:
示例:
|
A |
|
1 |
=connect("demo").cursor("SELECT top 3 * FROM scores where SUBJECT='English' ") |
返回游标,数据内容如下:
|
2 |
=connect("demo").cursor("SELECT top 3 * FROM scores where SUBJECT='Math' ") |
返回游标,数据内容如下:
|
3 |
=connect("demo").cursor("SELECT top 3 * FROM scores where SUBJECT='PE' ") |
返回游标,数据内容如下:
|
4 |
=[A1,A2,A3] |
返回游标组成的序列。 |
5 |
=A4.conj() |
纵向连接游标序列,返回游标。 |
6 |
=A5.fetch() |
读取A5游标中的数据(数据量较大时建议分批读取): |
相关概念:
描述:
语法:
T.conj(x)
备注:
虚表T中定义计算,T根据计算表达式x把每条记录拆分为序列/排列,然后将拆分结果中的成员或记录并集后返回成新虚表。
参数:
T |
虚表。 |
x |
返回排列(序表)的表达式。 |
返回值:
虚表
示例:
|
A |
|
1 |
=create(file).record(["gymn.ctx"]) |
gymn.ctx组表内容如下:
|
2 |
=pseudo(A1) |
返回虚表对象。 |
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虚表定义计算,拆分虚表中的记录并将拆分结果并集,返回新虚表。 |
4 |
读取A3虚表中的数据,此时A2虚表执行A3中定义的计算操作,返回内容如下:
|