本章介绍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游标中的数据(数据量较大时建议分批读取): |
相关概念:
CS.merge() connect()
描述:
创建数据源连接。
语法:
|
connect(dataSource) |
|
|
connect(drv,url) |
用驱动和url连接数据库,用户名和口令写进url中。 |
|
connect() |
返回文件系统的数据库连接,用于简单SQL查询。 |
备注:
创建数据源连接,无参数时,返回文件系统的数据库连接。
|
@l |
返回的字段名和表名为小写,缺省由数据库处理。 |
|
@e |
出错时返回错误信息由代码自行处理,否则将中断。 |
|
@ncurs |
连接的事务孤立级别,分别对应none,commit,uncommit,repeatable,serializable。 |
参数:
|
dataSource |
数据源名称。 |
|
drv |
数据库驱动类。 |
|
url |
数据库url。 |
数据源连接信息
示例:
|
|
A |
|
|
1 |
=connect("demo") |
连接demo数据源,本连接对数据库的任何操作,如果出错则中断 。 |
|
2 |
=connect@e("demo") |
连接demo数据源,本连接做的任何操作,出错时返回错误信息由代码自行处理。 |
|
3 |
=connect@c("demo") |
连接demo数据源,连接的事物孤立级别为commit。 |
|
4 |
=connect("org.hsqldb.jdbcDriver","jdbc:hsqldb:hsql://127.0.0.1/demo?user=sa") |
使用connect(drv,url)方式连接数据源,此处密码为空。 |
|
5 |
=connect("com.mysql.jdbc.Driver","jdbc:mysql://127.0.0.1:3306/mysqlwp?user=root&password=root") |
使用connect(drv,url)方式连接mysq数据源。 |
|
6 |
=connect() |
参数为空,连接文件系统。 |
|
7 |
=connect@l("demo") |
连接demo数据源,返回的字段名和表名为小写。 |
|
8 |
=A7.query("select * from DEPT") |
|
|
9 |
=connect("com.esproc.jdbc.InternalDriver","jdbc:esproc:local://") |
连接esproc-JDBC数据源。 |
|
10 |
=connect("oracle.jdbc.driver.OracleDriver","jdbc:oracle:thin:root/root@127.0.0.1:1521:orcl") |
连接oracle数据源。orcl为SID。 |
|
11 |
=connect("oracle.jdbc.driver.OracleDriver","jdbc:oracle:thin:root/root@//127.0.0.1:1521/snA") |
连接oracle数据源。snA为service_name。 |
相关概念: