【和SQL对比】游离记录对象

员工张三的年龄,张三比李四大几岁,比王五早入职几天?

SQL解法

张三的年龄

select 年龄 from 员工表 where 姓名='张三'

张三比李四大几岁

select (select 年龄 from 员工表 where 姓名='张三') -
    (select 年龄 from 员工表 where 姓名='李四')
from dual

比王五早入职几天

select (select 年龄 from 员工表 where 姓名='王五') -
    (select 年龄 from 员工表 where 姓名='张三')
from dual

SQL计算不分步,无法引用已有的计算结果,需要将被引用语句重抄一遍。

SPL解法

A B
1 =demo.query(“select * from 员工表”)
2 =A1.select@1(姓名:"张三") =A2.年龄
3 =A1.select@1(姓名:"李四") =B2-A3.年龄
4 =A1.select@1(姓名:"王五") =interval(B2,A4.年龄)

SPL支持游离记录用作变量值,可以充分利用中间结果。