描述:
获取符合条件的成员在序列中的位置。
语法:
| A.pselect(x,k) | 从第k个成员开始查找符合条件x的成员,k缺省为1。 | 
| A.pselect(x1:y1,x2:y2,......xi:yi) | 多个条件用"&&"组合查询时的简化写法,相当于A.pselect(x1==y1 && x2==y2 &&...... xi==yi)。 | 
备注:
获取成员在序列A中的位置,返回满足条件x的成员序号,返回值由选项决定,找不到返回空序列或null。
参数:
| A | 序列。 | 
| x | 布尔表达式,可以为null,使用@b选项时,x为返回结果为整数的表达式。 | 
| k | 从第k个成员开始寻找。 | 
| xi:yi | xi为表达式,yi为比较值。 | 
选项:
返回值:
使得表达式x的结果为真,或者表达式x的结果等于y的成员在序列中的位置;使用@a选项返回成员位置所组成的序列;当x为null时,返回由成员序号组成的序列。
示例:
| 
 | A | 
 | 
| 1 | [2,5,4,3,2,9,4,9,3] | 
 | 
| 2 | =A1.pselect(~>4) | 2 | 
| 3 | =A1.pselect@a(~>4) | [2,6,8] | 
| 4 | =A1.pselect@z(~>4) | 8 | 
| 5 | =A1.pselect@az(~>4) | [8,6,2] | 
| 6 | =[1,3,5,7,9].pselect@b(~-5) | 3, A6和A7的写法等价,返回值相同。 | 
| 7 | =[1,3,5,7,9].pselect@b(~:5) | 用冒号时,@b不需要更改写法。 | 
| 8 | =[1,3,5,7,9].pselect@s(~:4) | -3, 找不到4,返回可插入位置的相反数。 | 
| 9 | =[1,3,5,7,9].pselect@n(~:4) | 6 | 
| 10 | =demo.query("select * from EMPLOYEE") | 
 | 
| 11 | =A10.pselect(GENDER:"M",DEPT:"Sales") | 6 | 
| 12 | =demo.query("select * from EMPLOYEE where GENDER='M' order by EID asc") | EID和GENDER同序。 | 
| 13 | =A12.pselect@b(EID:10,GENDER:"M") | 2 | 
| 14 | =A12.pselect@s(EID:3,GENDER:"M") | -1,找不到EID为3并且GENDER为M的记录,返回可插入位置的相反数。 | 
| 15 | =A12.pselect@n(EID:3,GENDER:"M") | 239 | 
| 16 | =[2,5,4,3,2,9,4,9,3].pselect(~>4,3) | 6 | 
| 17 | =[2,5,4,3,2,9,4,9,3].pselect@0(~>9) | 0 | 
| 18 | =[2,5,4,3,2,9,4,9,3].pselect@0a(~>9) | null | 
注意:
使用@b、@s选项时A必须是升序序列,并且xi全升序。否则使用此参数会导致结果不正确。