T.switch(Fi,Ai:x;…)

阅读(244) 标签: 虚表, 指定, 字段,

描述:

虚表中定义指引字段切换操作后返回新虚表。

语法:

T.switch(Fi,Ai:x;…)

备注:

虚表T中定义计算,将T的字段Fi的值切换为Ai的记录,返回新虚表。xAi的主键或逻辑主键,匹配条件为Fi等于x;默认情况下,Fi找不到Ai可匹配的记录时显示为空。

参数:

T

虚表。

Fi

T中的字段。

Ai

序表/排列。

x

Ai的主键或逻辑主键,如果Ai设置了主键为x,则参数x可以省略。

选项:

@i

过程中找不到任何F对应值则删除该记录。

@d

@i相反,只保留找不到的记录。

@1

T中某条记录的F值在Ai中找不到,则生成一条Ai结构的记录,主键值设为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

=A2.switch@1(DEPT,A3)

=A7.cursor().fetch()

使用@1选项,虚表中的DEPT值在序表A3中找不到时,生成一条A3结构的记录,主键值设为DEPTB7执行计算后返回结果如下: