TSL语言基础 > SQL基础到TS-SQL > TS-SQL进阶 > TS-SQL访问分组后组内的内容 > ThisGroup访问分组内的内容

ThisGroup不能被直接当数据使用    

  •   如果我们现在需要返回的是分组中的具体内容而不是身高最高的学生,许多读者会这么写:
      R1:=Select ["性别"],["年龄"],AvgOf(["身高"]),ThisGroup as "最高的学生" from R Group By ["性别"],["年龄"] end;
      很可惜的是,这样写连语法都无法通过。为什么呢?ThisGroup仅仅只是一个关键字来代表当前分组,而如果要取出分组中的内容,则必需使用select,换句话来说就是:ThisGroup只能被放在select的from子句中。ThisGroup只是select查询的一个特殊源,而不是一个现成的结果集。
      上边代码正确的写法如下:
      R1:=Select ["性别"],["年龄"],AvgOf(["身高"]),select * from ThisGroup end as "详细信息" from R Group By ["性别"],["年龄"] end;
      ThisGroup作为一个from子句所支持的特殊关键字而不是一个数据集,有很多方面的考量,最主要的原因则是因为这样实现在大多数应用下可以获得更好的效率,因为用户往往并不一定需要访问分组子集的全部内容。