本节介绍组表列名的多种用法
描述:
本表、主表或更上层主表的列
备注:
C为本表、主表或更上层主表的列,可以直接引用,无需再加表名作为前缀。例如,表A为表B的主表,那么在表B中引用表A中的列时,可以直接引用列名,而不需要用A.C这样的格式,注意,如果是表A中引用表B中的列,需要写成B.C的格式。
示例:
|
A |
|
1 |
=create(k1,v1).record([1,10,2,20,3,30,4,40,10,100]) |
|
2 |
=create(k1,k2,v2).record([1,1,"a",3,1,"c"]) |
|
3 |
=file("D:/ctb.ctx") |
|
4 |
=A3.create(#k1,v1) |
创建组表基表 |
5 |
=A4.attach(table2,#k2,v2) |
基表上添加附表table2 |
6 |
=A4.append(A1.cursor()) |
|
7 |
=A5.append(A2.cursor()) |
|
8 |
=A4.cursor(k1,v1,table2.v2).fetch() |
在主表中引用子表table2中的列v2 |
9 |
=A5.cursor(k1,v1,v2).fetch() |
在子表中引用主表中的列k1、v1 |
描述:
从附表中取出指定列
备注:
从附表T中取出列C,如果记录中没有列C用空值,有多记录对应时取首条记录。
参数:
T |
附表 |
C |
附表的列 |
示例:
|
A |
|
1 |
=create(k1,v1).record([1,10,2,20,3,30,4,40,10,100]) |
创建序表 |
2 |
=create(k1,k2,v2).record([1,1,"a",2,4,"c",2,8,"b"]) |
创建序表 |
3 |
=file("D:/ckv.ctx") |
组表文件 |
4 |
=A3.create(#k1,v1) |
创建组表基表 |
5 |
=A4.attach(table2,#k2,v2) |
在基表上添加附表 |
6 |
=A4.append(A1.cursor()) |
在基表中追加数据 |
7 |
=A5.append(A2.cursor()) |
在附表中追加数据 |
8 |
=A4.cursor(k1,v1,table2.k2,table2.v2).fetch() |
读取组表基表中的列k1、v1及附表table2的列k2、v2,当记录中无k2、v2列时默认用空值。附表中多记录对应基表时取首条记录。 |
描述:
对附表的列进行聚合运算。
语法:
T.f(C)
备注:
对附表中多记录的列用聚合函数f进行运算。
参数:
T |
附表 |
f |
表示T的聚合函数,支持count/sum/max/min/avg/top/iterate |
C |
附表的列 |
示例:
|
A |
|
1 |
=create(k1,v1).record([1,10,2,20,3,30,4,40,10,100]) |
创建序表 |
2 |
=create(k1,k2,v2).record([1,1,"a",2,4,"c",2,8,"b"]) |
创建序表 |
3 |
=file("D:/ckv.ctx") |
组表文件 |
4 |
=A3.create(#k1,v1) |
创建组表基表 |
5 |
=A4.attach(table2,#k2,v2) |
在基表上添加附表 |
6 |
=A4.append(A1.cursor()) |
在基表中追加数据 |
7 |
=A5.append(A2.cursor()) |
在附表中追加数据 |
8 |
=A4.cursor(k1,table2.sum(k2):k2_sum).fetch() |
对组表中附表table2的列k2分组求和,并将列名命名为k2_sum |
9 |
=A4.cursor(table2.count(k2)).fetch() |
对组表中附表table2的列k2分组计数 |
10 |
=A4.cursor(table2.max(k2)).fetch() |
对组表中附表table2的列k2分组求最大值 |
11 |
=A4.cursor(table2.min(k2)).fetch() |
对组表中附表table2的列k2分组求最小值 |
12 |
=A4.cursor(table2.avg(k2)).fetch() |
对组表中附表table2的列k2分组求平均值 |
13 |
=A5.cursor().top(2;k2) |
返回实表table2中列k2里前2个最小值对应的记录 |
14 |
=A5.cursor().derive(iterate(~~*2,10):F1).fetch() |
对实表table2进行迭代循环 |
描述:
将附表中的记录返回成子序表。
语法:
T{x:C,…}
描述:
将附表中和当前记录主键相等的所有记录组成子序表返回。
参数:
T |
附表 |
x |
附表的列 |
C |
列别名,可省略 |
示例:
|
A |
|
1 |
=create(k1,v1).record([1,10,2,20,3,30,4,40,10,100]) |
创建序表 |
2 |
=create(k1,k2,v2).record([1,1,"a",2,4,"c",2,8,"b"]) |
创建序表 |
3 |
=file("D:/ckv.ctx") |
组表文件 |
4 |
=A3.create(#k1,v1) |
创建组表基表 |
5 |
=A4.attach(table2,#k2,v2) |
在基表上添加附表 |
6 |
=A4.append(A1.cursor()) |
在基表中追加数据 |
7 |
=A5.append(A2.cursor()) |
在附表中追加数据 |
8 |
=A4.cursor(k1,table2{k2,v2}:t2).fetch() |
将附表table2的记录以序表的形式返回 |