本章介绍alter()函数的多种用法。
描述:
修改记录中的字段。
r.alter(Fi,…;F’i,…)
备注:
修改记录r中的字段,字段顺序为Fi,…,未列出字段按原序依次排列, Fi若在记录中不存在则作为新字段添加,F’i为要删除的字段。
参数:
r |
记录。 |
Fi |
字段名称。 |
F’i |
要删除的字段名称。 |
返回值:
记录
示例:
|
A |
|
1 |
=demo.query("select top 9 class,studentid,subject,score from scores") |
返回序表数据如下:
|
2 |
=A1(1) |
返回序表A1中的第1条记录:
|
3 |
=A2.alter(classname;CLASS) |
在A2记录中增加字段classname,同时删除字段CLASS:
|
4 |
=A2.alter(classname,STUDENTID,gender) |
在A2记录中增加字段classname与gender,字段排列顺序为classname,STUDENTID,gender,剩下的字段CLASS,SUBJECT,SCORE依次往后排:
|
5 |
=A2.alter(;CLASS) |
在A2记录中删除字段CLASS:
|
修改序表中的字段。
语法:
T.alter(Fi,…;F’i,…)
备注:
修改序表T中的字段,字段顺序为Fi,…,未列出字段按原序依次排列,参数Fi若在序表不存在则作为新字段添加,参数F’i为要删除的字段。
参数:
T |
序表。 |
Fi |
字段名称。 |
F’i |
字段名称。 |
返回值:
示例:
|
A |
|
1 |
=demo.query("select class,studentid,subject,score from scores") |
表scores中的数据列如下:
|
2 |
=A1.alter(classname;CLASS) |
在序表A1中增加字段classname,删除字段CLASS:
|
3 |
=A2.alter(classname,STUDENTID,gender) |
增加字段gender,字段排列顺序为classname,STUDENTID,gender,剩下的字段UBJECT,SCORE依次往后排:
|
4 |
=A3.alter(;gender,classname) |
删除字段gender,classname:
|
描述:
修改实表中的字段。
语法:
T.alter(F:x,…;F’,…)
备注:
给实表/复实表T添加字段F,用x计算填入;同时删除字段F’;该功能仅对列存情况支持。维及前面的排序字段不得调整。
参数:
T |
实表/复实表。 |
F |
要添加的字段名称。 |
x |
计算表达式。 |
F’ |
表T中已有的字段名称。 |
返回值:
实表/复实表
示例:
|
A |
|
1 |
=file("emp.ctx") |
已存在的组表文件。 |
2 |
=A1.open() |
打开组表的基表。 |
3 |
查看基表中的数据:
|
|
4 |
=A2.alter(NEW_Salary:SALARY+1000;GENDER) |
给基表增加字段,字段名为NEW_Salary,字段值为表达式SALARY+1000计算后的值,同时删除字段GENDER。 |
5 |
=A2.cursor().fetch() |
此时查看基表中的数据,可以看到新增的字段NEW_Salary,并且GENDER字段已被删除:
|