前置 LOAD

前置LOAD可让您在一次遍历中加载表格,但仍然需要定义多个连续的转换。总的来说,它是一个 LOAD语句,可从下面的 LOADSELECT 语句加载,而无需指定通常使用的源限定符,如 FromResident。您可以按此方法叠加任意数量的LOAD 语句。首先将会对底部的语句进行求值,然后再对上面的语句进行求值,以此类推,直至求值到顶部的语句。

可以使用 Resident实现相同的结果,但在大多数情况下前置 LOAD 运行速度更快。

前置 Load 的另一个好处是可将计算保存在一个地方,并在上面部署的 LOAD语句中进行重复使用。

备注: 以下前缀不能与前置 LOAD结合使用:JoinCrosstableIntervalmatch

示例 1: 可通过 SELECT语句加载转换数据。

如果使用 SELECT语句从数据库加载数据,则不能使用 QlikView 函数解释SELECT 语句中的数据。解决方法是添加 LOAD语句,这样就可以针对上面的 SELECT 语句执行数据转换。

在本例中,我们在 LOAD语句中使用 QlikView 函数 Date# 解释存储作为字符串的日期,并使用上一个 SELECT 语句解释数据源。

LOAD Date#(OrderDate,’YYYYMMDD’) as OrderDate;
SQL SELECT OrderDate FROM … ;

示例 2: 可通过重复使用计算简化脚本

在本例中,我们在脚本中多次使用了计算:

LOAD ..., Age( FromDate + IterNo() – 1, BirthDate ) as Age, Date( FromDate + IterNo() – 1 ) as ReferenceDate Resident Policies While IterNo() <= ToDate - FromDate + 1 ;

通过在第一次遍历中引入计算,我们在前置 LOAD的 Age 函数中进行了重复使用:

LOAD ..., ReferenceDate, Age( ReferenceDate, BirthDate ) as Age; LOAD *, Date( FromDate + IterNo() – 1 ) as ReferenceDate Resident Policies While IterNo() <= ToDate - FromDate + 1 ;