A.find()

阅读(828) 标签: 查找, 主键, 二分法查找,

描述:

查找主键为k的成员。

语法:

A.find(k)

备注:

从排列/序表A中找到主键为k的成员,有索引表则使用索引表。A有时间键时,在基本键相同的记录中寻找时间键值不大于k值中最大者对应的记录,k中若未写时间键值则按now()计算,即取最新的。

参数:

A

排列/序表。

k

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

选项:

@b

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

@k

查找多条记录,当参数k是序列时被认为是键值序列,返回键值对应的A的成员;缺省返回查找第一个k的记录。

返回值:

记录

示例:

 

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选项,返回键值对应的成员。

8

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

不使用@k选项,仅返回第一个键值对应的成员。

9

=demo.query("select EID,NAME,STATE,HIREDATE from EMPLOYEE where GENDER='M'")

10

=A9.keys@t(STATE,HIREDATE)

设置基础键为STATE,时间键为HIREDATE

11

=A9.find(["Florida",date("2006-03-12")])

STATE为“Florida”的记录中寻找时间键值小于2006-03-12中的最大者对应的记录。

12

=A9.find("Florida")

时间键值按now()计算,取最新的日期。

相关概念:

A.pfind()