A.select()

阅读(788) 标签: 选出, 序列, 符合条件,

描述:

选出序列中符合条件的成员。

语法:

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)

相关概念:

A.pselect()