P.derive()

阅读(509) 标签: 序表, 排列, 添加字段,

描述:

为序表/排列添加字段

语法:

P.derive(xi :Fi,…)

备注:

给序表/排列P增加Fi,…字段,形成 " P中原有的字段, Fi,…" 结构的序表,然后对P的每条记录遍历,给每个Fi赋值为xi

参数:

Fi

字段名,此时Fi不能与P中原有字段同名

xi

表达式, 计算结果作为字段值

P

序表/排列

选项:

@m

数据量大的复杂运算中并行计算提升性能,计算次序不确定。

@i

xi计算结果为空时不生成该行记录(原记录字段不控制)

@f(…;n)

抄原字段时,将字段取值为记录的字段展开,n为层数,缺省为2

返回值:

添加字段后的序表

示例:

 

A

 

1

=demo.query("select NAME,BIRTHDAY,HIREDATE from EMPLOYEE")

2

=A1.derive(interval@y(BIRTHDAY, HIREDATE):EntryAge,

age(HIREDATE):WorkAge)

3

=A1.derive@m(age(HIREDATE):WorkAge)

数据量大时提升性能

4

=file("D:\\txt_files\\data1.txt").import@t()

data1.txt中内容如下:

5

=A4.derive@i(SCORE:score_not_null)

SCORE计算结果为空时,对应的该条记录不生成

6

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

7

=demo.query("select NAME,GENDER,DEPT,SALARY from EMPLOYEE")

 

8

>A7.switch(DEPT,A6:DEPT)

A7表中的DEPT字段值切换为记录

9

=A7.derive(SALARY*5:BONUS)

添加字段BONUS

10

=A7.derive@f(SALARY*5:BONUS)

使用@f选项,将原字段取值为记录的子弹展开,默认展开两层。

注意:

new() derive()的区别:new()是重新构造了一个序表,不改变原序表;而derive()方法是先抄录原有字段再增加字段。