描述:
选出序列中符合条件的成员。
语法:
A.select( x ) |
|
A.select(x1:y1, x2:y2, ......xi:yi) |
多个条件用&&组合查询时的简化写法,相当于A.select(x1== y1 && x2== y2 &&...... xi==yi).。多个条件组合时的@b选项,不需要写cmp()了,可以直接写成A.select@b(x1:y1, x2:y2, ......xi:yi) |
备注:
针对序列A的每个成员计算表达式x,返回使表达式的值为真的成员组成的新序列。参数省略时返回所有成员。当序列中的列名与格名冲突时,表达式中引用列名时需要加上序列名称作为前缀。
选项:
@1 |
返回第一个成员 |
@z |
从后往前查找 |
@b |
当A为有序序列时,使用二分法查询,如果A不是有序序列,则不能使用@b选项,否则会导致结果有误。 在A.select(x1:y1, x2:y2, ......xi:yi)中使用@b选项,选出cmp(x,y)中x值为0的成员,此处不需使用cmp(),A.select@b(x1:y1, x2:y2, ......xi:yi) 即可。 |
@m |
数据量大的复杂运算中并行计算提升性能,计算次序不确定,与@1bz选项互斥。 |
参数:
A |
序列 |
x |
布尔表达式,可为null,当使用@b选项时,x必须为数值型表达式 |
xi:yi |
xi 为表达式,yi为比较值 |
返回值:
使得表达式x的结果为真的成员组成的新序列。
示例:
|
A |
|
1 |
[2,5,4,3,2,1,4,1,3] |
|
2 |
=A1.select(~>3) |
[5,4,4] |
3 |
=A1.select@1(~>3) |
[5] |
4 |
=A1.select@z(~>3) |
[4,4,5] |
5 |
=[1,2,3,4,5,6].select@b(~-4) |
[4] |
6 |
=demo.query("select * from EMPLOYEE order by EID") |
|
7 |
=A6.select(EID==9) |
|
8 |
=A6.select@b(EID-9) |
使用@b表达式x需要转成数值 |
9 |
=A6.select(EID:9) |
|
10 |
=A6.select@b(EID:9) |
采用冒号的写法, @b的时候不需要改变 |
11 |
=A6.select() |
省略参数,返回所有成员 |
12 |
=A6.select@m(EID==9) |
数据量大时提升性能 |
13 |
=to(3).new(~:ID,~*~:A1) |
|
14 |
=A13.select(A13.A1==4) |
|
相关概念: