本章介绍field()函数的多种用法。
描述:
取得记录中某个字段的字段值。
语法:
r.field(F)
备注:
取得记录r的第F个字段的字段值或者字符串参数F的值,F<0时从后往前排。F越界和不存时返回空。
参数:
| r | 记录。 | 
| F | 字段序号或字符串参数,F为字符串参数时可用变量传递字段名。 | 
字段值
示例:
| 
 | A | 
 | 
| 1 | =demo.query("select * from EMPLOYEE")(1).field(2) | 返回序表 EMPLOYEE的第一条记录的第二个字段值。 | 
| 2 | =demo.query("select * from EMPLOYEE")(1).field(-2) | 返回序表 EMPLOYEE的第一条记录的倒数第二个字段值。 | 
| 3 | =demo.query("select * from EMPLOYEE")(1).field(arg1) | arg1为变量。 | 
| 4 | =demo.query("select * from EMPLOYEE")(1).field("SALARY") | 返回序表EMPLOYEE的第一条记录的SALARY字段值。 | 
相关概念:
描述:
修改记录r的指定字段值。
语法:
r.field(F,x)
备注:
修改记录r中第F个字段的字段值或者字符串参数F的值为x。F<0时从后往前排。F越界和不存时不执行。
参数:
| r | 记录。 | 
| F | 字段序号或字符串参数,F为字符串参数时可用变量传递字段名。 | 
| x | 表达式,计算结果为第F个字段的字段值或字符串参数F的值。 | 
返回值:
无
示例:
| 
 | A | 
 | 
| 1 | =demo.query("select * from EMPLOYEE") | 
 | 
| 2 | =A1(1).field(2,"Admin1") | 修改记录1中第2个字段的字段值为Admin1。 | 
| 3 | =A1(1).field(-1,10000) | 修改记录1中倒数第一个字段的字段值为10000。 | 
| 4 | >arg1="SURNAME" | 
 | 
| 5 | =A1(1).field(arg1,"Lily") | 修改记录1中SURNAME字段的字段值为Lily。 | 
| 
 | A | 
 | 
| 1 | {Au:0,Ag:0,Cu:0} | 
 | 
| 2 | =A1.field(-1)+=1 | 修改A1记录中的最后一个字段值,改为原字段值+1,此时A1记录中的数据为: 
 | 
相关概念:
描述:
获取序列中某个字段的字段值。
A.field(F)
备注:
对A循环取得每条记录的第F个字段的字段值或者字符串参数F的值,组成序列返回,F<0时从后往前排。F越界和不存时返回空。
参数:
| A | 序列。 | 
| F | 字段序号或字符串参数,F为字符串参数时可用变量传递字段名。 | 
选项:
| @r | 函数的返回值为记录或排列时,对其成员继续递归执行动作。 | 
返回值:
序列
示例:
| 
 | A | 
 | 
| 1 | =demo.query("select * from EMPLOYEE") | 
 | 
| 2 | =A1.field(2) | 返回第二个字段的值组成的序列。 | 
| 3 | =A1.field(-2) | 返回倒数第二个字段的值组成的序列。 | 
| 4 | =A1.field("NAME") | 返回NAME字段的字段值组成的序列。 | 
| 5 | >arg1="NAME" | 
 | 
| 6 | =A1.field(arg1) | 同A4。 | 
| 7 | =demo.query("select * from EMPLOYEE where EID < 20") | 
 | 
| 8 | =A7.group(STATE;~.avg(SALARY):avg,~:group) | 
 | 
| 9 | =A8.field@r(3) | 返回A8的第三列后,继续返回A8第三列中的第三列。 
 
 | 
相关概念:
描述:
修改序列中指定字段的字段值。
语法:
A.field(F,x)
备注:
将x序列中的成员依次赋值给A中第F个字段的字段值或者字符串参数F的值。F<0时从后往前排。F越界和不存时不执行。
参数:
| A | 序列。 | 
| F | 字段序号或字符串参数,F为字符串参数时可用变量传递字段名。 | 
| x | 序列长度与F的字段值数相同的序列或者单值,单值时当作与F的字段值数相同并且序列值一样的序列。 | 
返回值:
无
示例:
| 
 | A | 
 | 
| 1 | =demo.query("select top 3 * from EMPLOYEE") | 
 | 
| 2 | =A1.field(9,8000) | 修改第九个字段的值,参数x为单值,所以当作序列[8000,8000,8000], A1结果如图: 
 | 
| 3 | =A1.field("SALARY",7000) | 修改SALARY字段的字段值全部为7000。 | 
| 4 | >arg1="SALARY" | 
 | 
| 5 | =A1.field(arg1,7000) | 同A3。 | 
| 6 | =A1.field(9,[8000,6500,9000]) | 参数x为序列,A1结果如图: 
 | 
| 
 | A | 
 | 
| 1 | =create(ID,age).record([1,20,2,18]) | 返回序列: 
 | 
| 2 | =A1.field(-1)+=1 | 修改A1序列中的最后一个字段值,改为原字段值+1,此时A1中的序列内容如下: 
 | 
相关概念: