虚表中定义指引字段切换操作后返回新虚表。
T.switch(Fi,T’:x;…)
备注:
虚表T中定义计算,将T的字段Fi的值切换为序表/内存虚表T’的记录,返回新虚表。
x为T’的主键,匹配条件为Fi等于x;默认情况下,Fi找不到T’可匹配的记录时显示为null。
参数:
|
T |
虚表。 |
|
Fi |
T中的字段。 |
|
T’ |
序表/内存虚表。 |
|
x |
T’的主键或逻辑主键,如果T’设置了主键为x,则参数x可以省略。 |
选项:
|
@i |
Fi值匹配不到时删除整条记录。 |
|
@d |
与@i相反,只保留找不到的记录。 |
|
@1 |
T中某条记录的F值在T’中找不到,则生成一条T’结构的记录,主键值设为x。 |
返回值:
虚表
示例:
|
|
A |
B |
|
|
1 |
=create(file).record(["emp_news.ctx"]) |
|
emp_news.ctx组表内容如下:
|
|
2 |
=pseudo(A1) |
|
由组表产生虚表。 |
|
3 |
=demo.query("SELECT top 4 * FROM DEPARTMENT").keys(DEPT) |
|
返回序表,并设置字段DEPT为序表的键:
|
|
4 |
=A2.switch(DEPT,A3) |
=A4.import() |
执行A4格中的表达式,对虚表A2定义计算,将虚表中DEPT字段值转成序表A3中的指引字段,返回成新虚表。 执行B4格中的表达式,读取A4虚表中的数据,此时A2虚表执行A4中定义的计算操作,返回内容如下:
|
|
5 |
=A2.switch@i(DEPT,A3) |
=A5.import() |
使用@i选项,删除掉匹配不上的记录,B5执行计算后返回结果如下:
|
|
6 |
=A2.switch@d(DEPT,A3) |
=A6.cursor().fetch() |
使用@d选项,虚表中只保留匹配不上的记录,B6执行计算后返回结果如下:
|
|
7 |
=A7.cursor().fetch() |
使用@1选项,虚表中的DEPT值在序表A3中找不到时,生成一条A3结构的记录,主键值设为DEPT,B7执行计算后返回结果如下:
|
|
|
8 |
=pseudo([{file:"dmp.btx",key:"keys(DEPT)"}]) |
|
使用集文件定义内存虚表,DEPT为主键,数据内容如下:
|
|
9 |
=A2.switch(DEPT,A8) |
=A9.import() |
返回结果同B4。 |





