pfind()

阅读(2903) 标签: 查找, 主键, 序列号,

本章节介绍pfind()函数的用法。

A.pfind()

描述:

查找主键成员序列号。

语法:

A.pfind(k)

备注:

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

参数:

A

排列/序表。

k

主键,主键多个时可用序列[k1,k2,…](k1,k2,…)表示。

选项:

@b

二分法查找,要求A必须对键有序,否则会导致结果不正确。

@s

找不到时返回可插入位置的相反数。

@0

找不到返回0

返回值:

成员序号

示例:

 

A

 

1

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

2

=A1.keys(NAME,DEPT)

 

3

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

7,由于键字段有多个,因此主键组成序列查找。

4

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

该序表按照EID字段有序。

5

=A4.keys(EID)

 

6

=A4.pfind@b(3)

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

7

=A4.pfind@s(501)

-501,找不到EID501的记录,返回可插入位置的相反数。

8

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

9

=A8.keys@t(STATE,HIREDATE)

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

10

=A8.pfind(["Florida",date("2006-03-12")])

197,返回在STATE相同的记录中寻找时间键值不大于2006-03-12中的最大者对应的记录序号。

11

=A8.pfind("Florida")

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

12

=A8.pfind@0("OK")

0

相关概念:

A.find()