select

使用select语句访问表中数据。select语句总是返回一个表。

例子

创建表t1,含有列timestamp, qty, price和sym.

$ sym = `C`MS`MS`MS`IBM`IBM`C`C`C$SYMBOL
$ price= 49.6 29.46 29.52 30.02 174.97 175.23 50.76 50.32 51.29
$ qty = 2200 1900 2100 3200 6800 5400 1300 2500 8800
$ timestamp = [09:34:07,09:36:42,09:36:51,09:36:59,09:32:47,09:35:26,09:34:16,09:34:26,09:38:12]
$ t1 = table(timestamp, sym, qty, price);
$ t1;

timestamp

sym

qty

price

09:34:07

C

2200

49.6

09:36:42

MS

1900

29.46

09:36:51

MS

2100

29.52

09:36:59

MS

3200

30.02

09:32:47

IBM

6800

174.97

09:35:26

IBM

5400

175.23

09:34:16

C

1300

50.76

09:34:26

C

2500

50.32

09:38:12

C

8800

51.29

select * from t1;

timestamp

sym

qty

price

09:34:07

C

2200

49.6

09:36:42

MS

1900

29.46

09:36:51

MS

2100

29.52

09:36:59

MS

3200

30.02

09:32:47

IBM

6800

174.97

09:35:26

IBM

5400

175.23

09:34:16

C

1300

50.76

09:34:26

C

2500

50.32

09:38:12

C

8800

51.29

select语句中被选中的对象不仅限于表中的列,可以是变量或函数。系统会检查选中的列是否是表中的列,如果是,那么这个列将会被当作表列处理;否则将会被当作变量列或者函数处理。

recordNum=1..9;
select 1..9 as recordNum, sym from t1;

recordNum

sym

1

C

2

MS

3

MS

4

MS

5

IBM

6

IBM

7

C

8

C

9

C

// 使用一个标量值来表示含有相同值的列
$ select 3 as portfolio, sym from t1;

portfolio

sym

3

C

3

MS

3

MS

3

MS

3

IBM

3

IBM

3

C

3

C

3

C

在select语句中使用函数。

def f(a):a+100;
select f(qty) as newQty, sym from t1;

newQty

sym

2300

C

2000

MS

2200

MS

3300

MS

6900

IBM

5500

IBM

1400

C

2600

C

8900

C

select last price from t1 group by sym;

sym

last_price

C

51.29

MS

30.02

IBM

175.23