前置 LOAD
前置 LOAD 可让您在一次遍历中加载表格,但仍然需要定义多个连续的转换。总的来说,它是一个 LOAD 语句,可从下面的 LOAD 或 SELECT 语句加载,而无需指定通常使用的源限定符,如 From 或 Resident。您可以按此方法叠加任意数量的 LOAD 语句。首先将会对底部的语句进行求值,然后再对上面的语句进行求值,以此类推,直至求值到顶部的语句。
可以使用 Resident 实现相同的结果,但在大多数情况下前置 LOAD 运行速度更快。
前置 Load 的另一个好处是可将计算保存在一个地方,并在上面部署的 LOAD 语句中进行重复使用。
信息注释以下前缀不能与前置 LOAD 结合使用:Join、Crosstable 和 Intervalmatch。
示例 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 ;