CS.merge()

阅读(48) 标签: 对应序列, 归并计算,

描述:

针对游标序列成员做归并运算后返回多路游标。

语法:

CS.merge(xi,…)

备注:

CS是对[xi,…]有序的游标的序列,针对其成员输出的对应序列按照表达式xi做有序归并运算,结果返回多路游标。

游标中序列的成员必须同构。支持多路游标, 若成员是多路游标,则必须路数相同且同步分段。

该函数属于延迟计算函数。

选项:

@u

并集运算,CS游标序列的成员按顺序合并到一起组成新的游标,去掉重复的成员。缺省包含所有重复成员。

@i

交集运算,返回CS游标序列中共同的成员组成的游标。

@d

差集运算,从游标CS1中去掉游标CS2CSn中的成员后形成的新游标。

@0

null排最后。

@x

从游标CS1CS2...CSn中取出不重复的成员组成的新游标。

参数:

CS

游标组成的序列。

xi

表达式如果是按照多字段归并,字段间用逗号分隔,例如:x1,x2...

返回值

多路游标

示例:

 

A

 

1

=connect("demo").cursor("SELECT  top 10 EID,NAME,DEPT,GENDER  FROM employee ")

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

2

=connect("demo").cursor("SELECT  top 5 EID,NAME,DEPT,GENDER  FROM employee where GENDER='M' ")

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

3

=connect("demo").cursor("SELECT  top 5 EID,NAME,DEPT,GENDER  FROM  employee where DEPT='Sales' ")

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

4

=[A1,A2,A3]

返回游标序列。

5

=A4.merge(EID)

游标序列成员中的记录根据EID字段有序归并。

6

=A5.fetch()

读取游标A5中的数据(数据量较大时建议分批读取):

  使用@u选项,并集计算:

 

A

 

1

=connect("demo").cursor("SELECT  top 10 EID,NAME,DEPT,GENDER  FROM employee ")

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

2

=connect("demo").cursor("SELECT  top 5 EID,NAME,DEPT,GENDER  FROM employee where GENDER='M' ")

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

3

=connect("demo").cursor("SELECT  top 5 EID,NAME,DEPT,GENDER  FROM  employee where DEPT='Sales' ")

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

4

=[A1,A2,A3]

返回游标序列。

5

=A4.merge@u(EID)

使用@u选项,游标序列成员中的记录根据EID字段有序归并,去掉重复的成员。

6

=A5.fetch()

读取游标A5中的数据:

使用@i选项,交集计算:

 

A

 

1

=connect("demo").cursor("SELECT  top 10 EID,NAME,DEPT,GENDER  FROM employee ")

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

2

=connect("demo").cursor("SELECT  top 5 EID,NAME,DEPT,GENDER  FROM employee where GENDER='M' ")

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

3

=connect("demo").cursor("SELECT  top 5 EID,NAME,DEPT,GENDER  FROM  employee where DEPT='Sales' ")

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

4

=[A1,A2,A3]

返回游标序列。

5

=A4.merge@i(EID)

使用@i选项,交集运算,返回游标序列中共同成员组成的游标。

6

=A5.fetch()

读取游标A5中的数据:

使用@d选项,差集计算:

 

A

 

1

=connect("demo").cursor("SELECT  top 10 EID,NAME,DEPT,GENDER  FROM employee ")

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

2

=connect("demo").cursor("SELECT  top 5 EID,NAME,DEPT,GENDER  FROM employee where GENDER='M' ")

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

3

=connect("demo").cursor("SELECT  top 5 EID,NAME,DEPT,GENDER  FROM  employee where DEPT='Sales' ")

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

4

=[A1,A2,A3]

返回游标序列。

5

=A4.merge@d(EID)

使用@d选项,差集运算,从游标A1中去掉游标A2A3中的成员后形成的新游标

6

=A5.fetch()

读取游标A5中的数据:

使用@x选项,取出游标序列中不重复的成员组成新的序列:

 

A

 

1

=connect("demo").cursor("SELECT  top 10 EID,NAME,DEPT,GENDER  FROM employee ")

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

2

=connect("demo").cursor("SELECT  top 5 EID,NAME,DEPT,GENDER  FROM employee where GENDER='M' ")

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

3

=connect("demo").cursor("SELECT  top 5 EID,NAME,DEPT,GENDER  FROM  employee where DEPT='Sales' ")

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

4

=[A1,A2,A3]

返回游标序列。

5

=A4.merge@x(EID)

使用@x选项,差集运算,从取出游标序列中不重复的成员组成新的序列

6

=A5.fetch()

读取游标A5中的数据:

相关概念:

A.merge()