find()

阅读(1102) 标签: find,

本章介绍find()函数的多种用法。

A.find()

描述:

查找主键为k的成员。

语法:

A.find(k)

备注:

从排列/序表A中找到主键等于k的成员,有索引表则使用索引表。

参数:

A

排列/序表

k

主键,主键多个时用序列表示

选项:

@b

二分法查找,要求A必须有序,否则会导致结果不正确,忽略索引表

@k

当参数k是序列时被认为是键值序列,返回键值对应的A的成员

返回值:

记录

示例:

 

A

 

1

=demo.query("select * from EMPLOYEE")

2

=A1.keys(NAME,DEPT)

 

3

=A1.find(["Alexis","Sales"])

 

键有多个,因此组成序列

4

=demo.query("select * from EMPLOYEE")

 

该序表按照EID字段有序

5

=A4.keys(EID)

 

6

=A4.find@b(3)

@b选项,二分法查找,提高运算速度

7

=A4.find@k(2,15,69,220)

使用@k选项,返回键值对应的成员

相关概念:

A.pfind()

T.find(k,…)

描述:

获取内表中指定主键所在的记录。

语法:

T.find(k,…)

备注:

从内表T中查找主键等于k的记录,未建索引时用二分法查找。

参数:

T

内表

k

主键,主键多个时用序列表示

选项:

@k

可以查找多条记录,返回成排列。主键有多个时,参数k的写法为 [[k1,k2],[...],...]

返回值:

记录/排列

示例:

 

A

 

1

=demo.cursor("select EID,NAME,GENDER from employee where EID< 10")

返回游标

2

=A1.memory()

返回内表

3

=A2.keys(EID,NAME)

 设置EIDNAME为内表键字段

4

=A2.find([8,"Megan"])

 因为有多个主键,所以组成序列

5

=A2.keys(EID,GENDER)

设置EID,GENDER为内表键字段

6

=A2.find@k([[8,"F"],[2,"F"]])

@k选项,查询多条记录

7

=A2.keys(EID)

设置EID为内表键字段

8

=A2.find(3)

查询主键为3的记录

T.find(k;x:C,..)

描述:

获取基表中指定主键所在的记录。

语法:

T.find(k;x:C,..)

备注:

从基表T中查找主键等于k的记录,然后返回由C构成的记录。键值可以只写前面维字段的,只要能唯一确定即可。

参数:

T

基表

k

主键,主键多个时用序列表示

x

列名,缺省读取全部列

C

列别名,可省略

选项:

@k

查找多条记录,返回成排列。主键有多个时,参数k的写法为:[[k1,k2],[...],...]

返回值:

记录/排列

示例:

 

A

 

1

=file("E:/find1.ctx")

返回游标

2

=A1.create()

打开EIDNAME的组表基表

3

=A2.find([8,"Megan"])

x省略返回所有列

4

=A2.find([8,"Megan"];EID,SALARY)

返回指定列

5

=A2.find@k([[4,"Emily"], [8,"Megan"]];EID,SALARY)

@k选项,查询多条记录