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

阅读(552) 标签: 管道, 编码字符, 键值,

描述:

管道中附加指引字段切换动作后返回原管道。

语法:

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

备注:

管道ch中附加计算,将Fi字段值切换为Ai的记录,返回原管道ch

xAi的主键或逻辑主键,匹配条件为Fi等于x。默认情况下,Fi找不到Ai可匹配的记录时显示为空。

该函数属于附加计算动作

参数:

ch

管道。

Fi

ch中的字段

Ai

序表/排列。

x

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

选项:

@i

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

@d

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

@1

ch中某条记录的Fi值在Ai中找不到,则生成一条Ai结构的记录,主键值设为x。注意是数字1

返回值:

管道

示例:

   xAi的主键:

 

A

 

1

=demo.cursor("SELECT top 10 EID,DEPT,NAME FROM EMPLOYEE")

返回游标,数据内容如下:

2

=demo.query("SELECT DEPT,MANAGER FROM DEPARTMENT").keys(DEPT)

返回DEPT为键的序表:

3

=channel()

创建管道。

4

=A3.switch(DEPT,A2)

管道附加计算,将DEPT的字段值切换为指引字段指向A2的记录,DEPTA2的键,所以参数x可省略,返回到A3管道。

5

=A4.fetch()

执行结果集函数,保留管道当前数据。

6

=A1.push(A3)

A1游标中的数据推送到管道,此时数据不会立即被推送到管道;

7

=A1.skip()

A1游标执行取数动作,此时数据才会被推送到管道,然后管道执行计算并记录结果。

8

=A3.result()

获取管道计算结果:

xAi的主键或逻辑主键:

 

A

 

1

=demo.cursor("SELECT top 10 EID,DEPT,NAME FROM EMPLOYEE")

返回游标,数据内容如下:

2

=demo.query("SELECT top 6 DEPT,MANAGER FROM DEPARTMENT")

返回序表:

3

=channel(A1)

创建管道并将A1游标中的数据推送到管道,此时数据不会立即被推送到管道。

4

=A3.switch(DEPT,A2:DEPT)

管道附加计算,将DEPT字段匹配序表A2中对应的DEPT字段值,无法匹配则显示为空,返回到A3管道。

5

=A4.fetch()

执行结果集函数,保留管道当前数据。

6

=A1.skip()

A1游标执行取数动作,此时数据才会被推送到管道,然后管道执行计算并记录结果。

7

=A3.result()

获取管道计算结果:

使用@i选项,字段不匹配的记录直接删除:

 

A

 

1

=demo.cursor("SELECT top 10 EID,DEPT,NAME FROM EMPLOYEE")

返回游标,数据内容如下:

2

=demo.query("SELECT top 6 DEPT,MANAGER FROM DEPARTMENT")

返回序表:

3

=channel(A1)

创建管道并将A1游标中的数据推送到管道,此时数据不会立即被推送到管道。

4

=A3.switch@i(DEPT,A2:DEPT)

管道附加,将DEPT字段匹配序表A2中对应的DEPT字段值,使用@i选项,无法匹配则删除整条记录,返回到A3管道。

5

=A4.fetch()

执行结果集函数,保留管道当前数据。

6

=A1.skip()

A1游标执行取数动作,此时数据才会被推送到管道,然后管道执行计算并记录结果。

7

=A3.result()

获取管道计算结果:

  使用@d选项,与@i相反,只保留匹配不到的记录: 

 

A

 

1

=demo.cursor("SELECT top 10 EID,DEPT,NAME FROM EMPLOYEE")

返回游标,数据内容如下:

2

=demo.query("SELECT top 6 DEPT,MANAGER FROM DEPARTMENT")

返回序表:

3

=channel(A1)

创建管道并将A1游标中的数据推送到管道,此时数据不会立即被推送到管道。

4

=A3.switch@i(DEPT,A2:DEPT)

管道附加,将DEPT字段匹配序表A2中对应的DEPT字段值,使用@d选项,只保留匹配不到的记录,返回到A3管道。

5

=A4.fetch()

执行结果集函数,保留管道当前数据。

6

=A1.skip()

A1游标执行取数动作,此时数据才会被推送到管道,然后管道执行计算并记录结果。

7

=A3.result()

获取管道计算结果:

  使用@1选项: 

 

A

 

1

=demo.cursor("SELECT top 10 EID,DEPT,NAME FROM EMPLOYEE")

返回游标,数据内容如下:

2

=demo.query("SELECT top 6 DEPT,MANAGER FROM DEPARTMENT")

返回序表:

3

=channel(A1)

创建管道并将A1游标中的数据推送到管道,此时数据不会立即被推送到管道。

4

=A3.switch@i(DEPT,A2:DEPT)

管道附加,将DEPT字段匹配序表A2中对应的DEPT字段值,使用@1选项,匹配不到时则生成一条A2结构的记录,返回到A3管道。

5

=A4.fetch()

执行结果集函数,保留管道当前数据。

6

=A1.skip()

A1游标执行取数动作,此时数据才会被推送到管道,然后管道执行计算并记录结果。

7

=A3.result()

获取管道计算结果: