本章节介绍pselect()函数的用法。
描述:
获取成员序列位置。
语法:
A.pselect(x,k) |
有参数k时从第k个成员开始寻找。 |
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 |
注意:
使用@b、@s选项时A必须是升序序列,并且xi全升序。否则使用此参数会导致结果不正确。