描述:
查找主键成员序列号。
语法:
A.pfind(k)
备注:
从排列/序表A中找到主键为k的成员序号,无键或找不到时返回null。A有时间键时,在基本键相同的记录中寻找时间键值不大于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,找不到EID为501的记录,返回可插入位置的相反数。 | 
| 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 | 
相关概念:

