select()

Read(296) Label: select,

Here’s how to use select() function.

A .select()

Description:

Return members of a sequence which satisfy a condition.

Syntax:

A.select(x)

 

A.select(x1:y1, x2:y2, ......xi:yi)

The simplified syntax of multiple-condition query using "&&", which is equal to A.select(x1== y1 && x2== y2 &&...... xi==yi). In the case of the multiple-condition query with @b option, cmp() is not needed and you can just write A.select@b(x1:y1, x2:y2, ......xi:yi)

 

Note:

The function computes expression x against each member of the sequence A, and returns a new sequence composed of those members which make x return true.When there are no parameters, return all the members. If the name of a to-be-referenced column of the sequence is the same as a cell name, the sequence name should be attached before the column name in the expression.

Parameters:

A

A sequence.

x

A boolean expression, which may be null. when using @b option, x should be an expression whose return value is a number.

xi:yi

xi is an expression, and yi is a comparing value.

Options:

@1

Return the first member that fulfills the condition.

@z

Search the members from back to front

@b

Use binary search when A is an ordered sequence. If A is not an ordered one, then this option should not be used, or it may bring about the incorrect result. When the option works with A.select(x1:y1, x2:y2, ......xi:yi) to find out members that make x in cmp(x,y) return the value 0, you can just write A.select@b(x1:y1, x2:y2, ......xi:yi) without cmp().

@m

Use parallel algorithm to handle data-intensive or computation-intensive tasks; no definite order for the records in the result set; it can’t be used with @1bz options.

Return value:

A new sequence composed of members which make the expression x return true

Example:

 

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)

The expression x needs to be converted to a number with @b.

9

=A6.select(EID:9)

 

10

=A6.select@b(EID:9)

It’s no need to execute the conversion by using the colon when @b exists.

11

=A6.select()

Return all members as there are no parameters.

12

=A6.select@m(EID==9)

Use @m option to increase performance of big data handling.

13

=to(3).new(~:ID,~*~:A1)

14

=A13.select(A13.A1==4)

.Related functions:

A.pselect()

 

T.select()

Description:

Return members of a table sequence/memory table which satisfy a condition.

Syntax:

T.select(x)

 

Note:

The function computes expression x against each member of table sequence/memory table T, and returns a new table sequence/memory table composed of those members which make x return true

Options:

@i

Reuse T’s index, which may disrupt the order of the result set

Parameters:

T

A table sequence/memory table

x

Filtering expression; can be null

Return value:

A table sequence/memory table

Example:

 

A

 

1

=demo.query("select * from DEPT").keys@i(DEPTID)

Create an index

2

=A1.select@i(FATHER:12)

Reuse A1’s index

ch. select()

Description:

Return a channel with records that meet the given condition.

Syntax:

ch.select(x)

Note:

The function attaches a filtering operation to a channel and then returns it. It calculates expression x against each of the records in channel ch, and returns the channel containing records that make values of x true. When the parameter x is omitted, return the original channel with all records. This is an attached computation.

Parameters:

ch

Channel

x

Boolean expression

Return value:

  The original channel with records that meet the given condition

Example:

 

A

 

1

=demo.query("select * from SALES")

 

2

=channel()

Create a channel

3

=A2.select(ORDERID>100)

Attach a ch.select() operation to A2’s channel to get records meeting the condition ORDERID>100 and return the channel with these eligible records

4

=A2.fetch()

Fetch and store the existing data in the channel

5

=A1.push(A2)

Push data in A1’s sequence into A2’s channel

6

=A2.result()

Get result from the channel

ch .select( x,ch’ )

Description:

Send records in a channel that can’t meet the given condition into another channel.

Syntax:

ch.select(x,ch’)

Note:

The function calculates expression x against each of the records in channel ch, and sends those records over which the value of x is false into channel ch’.

Parameters:

ch

Channel

x

A boolean expression

ch’

Channel

Return value:

  Channel ch’

Example:

 

A

 

1

=demo.cursor("select EID,NAME,SALARY from EMPLOYEE " )

 

2

=channel()

Create a channel

3

=channel()

Create a channel

4

=A1.push(A2)

Push data in A1’s cursor into A2’s channel

5

=A2.select(EID<5,A3)

Push records in A2’s channel that can’t meet the condition EID<5 into A3’s channel

6

=A2.fetch()

Attach ch.fetch() function that gets the final result set to A2’s channel to fetch and store the existing data in A2’s channel

7

=A3.fetch()

Attach ch.fetch() function that gets the final result set to A3’s channel to fetch and store the existing data in A3’s channel

8

=A1.skip()

 

9

=A2.result()

10

=A3.result()

cs .select()

Description:

Return a cursor with records meeting the given condition.

Syntax:

cs.select(x)

Note:

The function calculates expression x against each of the records in cursor cs and returns a cursor containing records that can make the value of x true. When parameter x is omitted, return the original cursor with all records. The function supports multicursors.

Parameters:

cs

A cursor

x

A boolean value

Return value:

  The original cursor with eligible records

Example:

 

A

 

1

=demo.cursor("select * from SCORES")

 

2

=A1.select(STUDENTID>10)

Select the records where STUDENTID is greater than 10 from the SCORE table

3

=A2.fetch()

cs .select( x,ch’ )

Description:

Send records in a cursor that can’t meet the given condition into a channel.

Syntax:

cs.select(x,ch’)

Note:

The function calculates expression x against each of the records in cursor cs, and sends those records over which the value of x is false into channel ch’.

Parameters:

cs

Cursor

x

A boolean value

ch’

Channel

Return value:

  Channel ch’

Example:

 

A

 

1

=demo.cursor("select EID,NAME,SALARY from EMPLOYEE" )

 

2

=channel()

Create a channel

3

=A1.select(EID<5,A2)

Push records that don’t meet the condition EID<5 into A2’s channel

4

=A2.fetch()

Fetch and store the existing data in the channel

5

=A1.fetch()

6

=A2.result()

Get result from the channel

cs.select(x;f)

Description:

Write the records that unsatisfy the specified expression into a bin file.

Syntax:

cs.select(x;f)

Note:

The function computes expression x over each record of cursor cs and writes the records that unsatisfy expression x into the bin file f.

Parameters:

cs

Cursor

x

Boolean expression

f

bin file

Return value:

  The original cursor

Example:

 

A

 

1

=demo.cursor("select * from dept")

 

2

=file("dept.btx")

 

3

=A1.select(DEPTID<5;A2)

Write the records that cannot meet the condition DEPTID<5 into bin file dept.btx

4

=A3.fetch()