字段名中的特殊标识符

阅读(297) 标签: 字段名, 特殊标识符,

在使用序表时,如果序表的字段名中包含非字母数字的特殊标识符,如%, (,),"等符号或者空格等,都有可能致使表达式解析时产生歧义,如:

 

A

1

$(demo) select * from STATES order by STATEID

2

=A1.new(NAME:STATE,POPULATION,AREA:'AREA(sq. mi.)')

3

=A2.(round(POPULATION/AREA(sq. mi.),3))

A2中生成的序表如下,其中在州面积字段中添加了单位以作说明:

A3中试图使用A2中的数据来计算每个州的人口密度时,字段名在表达式中的解析出现了问题。为了避免这种情况,可以用单引号'…'将序表的字段括起来,从而把其中的标识符和特定符号区分开,如:

 

A

1

$(demo) select * from STATES order by STATEID

2

=A1.new(NAME:STATE,POPULATION,AREA:'AREA(sq. mi.)')

3

=A2.(round(POPULATION/'AREA(sq. mi.)',3))

此时,集算器计算时就可以知道'AREA(sq. mi.)'单引号中的字符需要整体处理。A3中就可以计算出所需结果:

'…'表示的特殊标识符,除了序表中的字段名,也有可能在调用特殊名称的参数时使用。

当然,序表中的字段也可以按照位置引用,而避免字段名造成的麻烦,如:

 

A

1

$(demo) select * from STATES order by STATEID

2

=A1.new(NAME:STATE,POPULATION,AREA:'AREA(sq. mi.)')

3

=A2.derive(round(POPULATION/#3,3):Density)

A3中,在A2中序表的基础上,添加了人口密度列,计算时,用#3表示引用A2的第三个字段,避免了特殊字段名带来的问题。A3中结果如下:

在用'…'表示的特殊标识符调用序表字段时,序表的字段名中是不能存在单引号的,否则就只能使用上例的方法按位置访问字段了。