cs.joinx()

阅读(782) 标签: 游标, 实表, 外键式连接,

描述:

游标与实表外键式连接。

语法:

cs.joinx(C:…,T:K:…,x:F,…;…;…;n)

备注:

用游标cs中的字段C,匹配实表T的键K并找到相应记录,然后拼接上该记录的表达式x作为字段F添加到cs中形成新游标匹配不上外键的记录,字段值缺省填写为nullTK有序。

选项:

@i

匹配不上外键则删除整条记录,缺省填成null

没有x:F参数时,只做针对cs的过滤。

@d

删除匹配上外键的整条记录,只做针对cs的过滤操作,此时省略参数x:F

@q

cs数据量不大或是序列时,使用该选项提升计算速度

@u

不保持cs的原次序,可加快速度。

@m

csC有序,TK有序,可用归并方式计算

参数:

cs

游标/多路游标。

C

游标cs的外键。

T

实表。

K

T的键,K#时理解为序号。

x

f的字段表达式。

F

表达式x的字段名。

n

缓存区行数。

返回值:

游标/序表

示例:

游标与实表常规连接:

A

 

1

=connect("demo").cursor("select CID,NAME,POPULATION,STATEID from CITIES")

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

2

=file("StateFile.ctx").open()

返回STATEID为键的实表,数据如下:

3

=A1.joinx(STATEID,A2:STATEID,NAME:SName,POPULATION:Spopulation;1000)

A1游标中的字段STATEID匹配实表的STATEID字段,将实表NAMEPOPULATION列分别作为SNameSPopulation字段拼接到A1游标上形成新的游标。

4

=A3.fetch@x(100)

读取A3游标中的前100条记录,读完后关闭游标,返回内容如下:

使用@i选项,删除外键不匹配的记录:

A

 

1

=connect("demo").cursor("select CID,NAME,POPULATION,STATEID from CITIES")

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

2

=file("StateFile.ctx").open()

返回STATEID为键的实表,数据如下:

3

=A1.joinx@i(STATEID,A2:STATEID,NAME:SName,POPULATION:SPopulation;1000)

使用@i选项,A1游标中外键STATEID匹配不上的记录删除。

4

=A3.fetch@x(100)

读取A3游标中的前100条记录,读完后关闭游标,返回内容如下:

使用@d选项:

A

 

1

=connect("demo").cursor("select CID,NAME,POPULATION,STATEID from CITIES")

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

2

=file("StateFile.ctx").open()

返回STATEID为键的实表,数据如下:

3

=A1.joinx@d(STATEID,A2:STATEID)

使用@d选项,保留A1游标中外键STATEID匹配不上的记录。

4

=A3.fetch@x(100)

读取A3游标中的前100条记录,读完后关闭游标,返回内容如下:

cs为序表时,使用@q选项:

A

 

1

=connect("demo").query("select CID,NAME,POPULATION,STATEID from CITIES")

返回序表内容如下:

2

=file("StateFile.ctx").open()

返回STATEID为键的实表,数据如下:

3

=A1.joinx@qi(STATEID,A2:STATEID,NAME:SName,POPULATION:SPopulation;1000)

cs为序表时返回序表,使用@q选项,提升计算速度,返回结果如下:

使用@m选项,归并方式计算:

A

 

1

=connect("demo").cursor("select CID,NAME,POPULATION,STATEID from CITIES").sortx(STATEID)

返回对STATEID有序的游标,数据内容如下:

2

=file("StateFile.ctx").open()

返回STATEID为键的实表,数据如下:

3

=A1.joinx@m(STATEID,A2:STATEID,NAME:SName,POPULATION:SPopulation;1000)

A1STATEID有序,A2STATEID有序,使用@m选项,用归并方式计算。

4

=A3.fetch@x(100)

读取A3游标中的前100条记录,读完后关闭游标,返回内容如下: