TSL语言基础 > SQL基础到TS-SQL > TS-SQL进阶 > TS-SQL和多重嵌套查询

RefsOf访问上级结果集    

  •   RefsOf的定义为:RefsOf(Exp,UpLevel),其中Exp是一个任意的计算表达式,UpLevel是上几级,1表示上一级,2表示上两级。RefsOf的含义是,使用指定的上级结果集计算EXP表达式。可能这样说会很抽象,举几个例子:
    例如:RefsOf(["学号"],1)表示上级结果集的学号字段,假定存在一个函数SQLTest,其定义为
      Function SQLTest();
      begin
       return ["学号"];
      end;
      RefsOf(SQLTest(),1)同样访问的是上级结果集的学号字段。在这里,这样重复地说明只是为了告诉读者,在RefsOf中的第一个参数中的计算,无论是直接访问结果集(如访问字段,ThisRow等等),还是间接地访问(例如通过函数),访问的结果集均是指定的上层结果集的内容,够拗口吧。
    之前的例子我们可以修改成如下代码:
      R:=select *,Select ["课程时间"],["缺课"] from D where ["学号"]=RefsOf(["学号"],1) and ["缺课"]="Yes" end as "出勤记录" from B end;