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

阅读(745) 标签: 编码, 键值, 指引记录,

描述:

编码字段的键值和指引记录之间切换。

语法:

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

备注:

Fi在键值和Ai的指引记录之间切换,键值为Ai指引记录的主键,返回切换后的序表。

比如Attendance表里的employeeID字段,里面可能存的是employeeID的码值,也可能存Employee表的对应记录,此时可以用switch()在两者之间切换。

外键有索引表则用索引,没有则建立自行管理。

参数:

P

序表/排列。

Fi

P的键,当只有Fi参数时,Fi存的是码表Ai的记录。通过switch函数切换成码值。

Fi, Ai

当存在参数Ai时,FiP的编码字段,存的是码值。通过switch函数切换成Ai的记录。找不到填为null。匹配条件为FiAi的主键相等。

Fi, Ai:x

当存在参数Ai和主键x时,表示从Ai中选出第一条x值和Fi相同的记录,放到字段Fi中,特别地,x#时直接用序号定位。

选项:

(Fi, Ai Fi, Ai:x有效)

@i

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

@d

@i相反,只保留找不到的记录,此时不把F填成null

@1

P中某条记录的F值在B中找不到,则生成一条B结构的记录,主键值设为F

返回值:

序表

示例:

 

A

 

1

=demo.query("select * from DEPARTMENT").keys(DEPT)

 

2

=demo.query("select * from EMPLOYEE where EID < 10")

 

3

=demo.query("select * from DEPARTMENT" ).cursor().memory().keys(DEPT)

返回内表。

4

>A2.switch(DEPT,A1:DEPT)

 

5

>A2.switch(DEPT,A3:DEPT)

A3为内表,同上。

6

>A2.switch(DEPT)

A2"DEPT"字段对应的序表的记录转换为字段值。

7

>A2.switch@i(DEPT,A1)

找不到任何DEPT对应值则删除该记录。

8

>A2.switch@d(DEPT,A1)

只保留找不到任何DEPT对应值的记录。

9

>A1.delete(6)

 

10

=A2.switch(DEPT,A2:DEPT)

11

=A2.switch@1(DEPT,A2:DEPT)

相关概念:

cs.switch()