S3 别名编程构造
别名编程构造是 s3 选择语言的基本部分,因为它支持对包含许多列或复杂查询的对象进行更好的编程。 当您解析带有别名构造的语句时,它会将别名替换为对右投影列的引用。 在查询时,将像对任何其他表达式一样对引用进行求值。 别名维护结果高速缓存。 如果多次使用别名,那么不会对同一表达式进行求值。 由于使用了来自高速缓存的结果,因此返回了相同的结果。 目前, IBM 支持列别名。
存在可能发生自引用或循环引用导致堆栈溢出 (endless-loop) 的风险,对于此问题,在对别名进行求值时,将对其进行循环引用验证。
对于每个新行,高速缓存都将失效,因为结果可能有所不同。
示例
select int(_1) as a1, int(_2) as a2 , (a1+a2) as a3 from s3object where a3>100 and a3<300;