为什么不能使用标准的SQL语句访问一维数组呢?原因是很简单的,因为在标准SQL中,是通过字段来访问数据的,例如在TS-SQL中,使用["英语成绩"]来访问、操作表中的英语成绩。没有了列,这种访问就无法表达了。
在这种情况下,TS-SQL引入了关键字ThisRow,顾名思义,ThisRow可以访问当前行的数据,而对于一维数组,整行数据就是数组项的值。利用这种特性,ThisRow可以支撑select,update,insert,delete对一维数组的访问和处理。我们看一个范例:
R:=array(1,2,3,4,5,6);
R1:=select ThisRow from R where ThisRow>5 end;
//该R1的结果为:array(("Expr1":6))
update R set thisrow=thisrow*10 end;
//R的结果为:array(10,20,30,40,50,60)
insert into R insertfields(thisrow) values(70);
//R的结果为:array(10,20,30,40,50,60,70)
delete from R where thisrow<50;
//R的结果为:array(50,60,70)