脚本前缀
前缀可用于常规语句,但不可用以控制语句。when 和 unless 前缀可用作少数指定控制语句子句的后缀。
所有脚本关键字可以大小写字符的任意组合输入。用于脚本中的字段和变量名要区分大小写。
使用每个函数的下拉列表可查看每个函数的简短描述和语法。单击语法描述中的函数名称可了解更多信息。
QVD 文件可通过 buffer 前缀自动创建和维护。该前缀可用于脚本中大多数 LOAD 和 SELECT 语句。这表示 QVD 文件可用于缓存/缓冲该语句产生的结果。
Buffer[(option [ , option])] ( loadstatement | selectstatement )
option::= incremental | stale [after] amount [(days | hours)]
如果要进行串联的两个表格具有不同的字段集,仍然可以使用 Concatenate 前缀强制串联两个表格。
concatenate[ (tablename ) ] ( loadstatement | selectstatement )
crosstable 加载前缀用于转置“交叉表”或“透视表”结构化数据。使用电子表格源时,通常会遇到以这种方式构造的数据。crosstable 加载前缀的输出和目的是将此类结构转换为规则的面向列的表等价物,因为这种结构通常更适合 Qlik Sense 中的分析。
crosstable (attribute field name, data field name [ , n ] ) ( loadstatement | selectstatement )
First 前缀(属于 LOAD 或 SELECT (SQL) 语句)前缀用于从数据源表格加载记录的一组最大数。
First n( loadstatement | selectstatement )
Generic 加载前缀允许将实体-属性-值建模数据 (EAV) 转换为传统的规范化关系表结构。EAV 建模也称为“通用数据建模”或“开放模式”。
Generic ( loadstatement | selectstatement )
hierarchy 前缀用于将父子层次表格转换成在 Qlik Sense 数据模型中有用的表格。此前缀可能置于 LOAD 或 SELECT 语句前面,并会使用加载的语句结果作为表格转换的输入。
Hierarchy (NodeID, ParentID, NodeName, [ParentName], [PathSource], [PathName], [PathDelimiter], [Depth])(loadstatement | selectstatement)
此前缀用于将父子层次表格转换成在 Qlik Sense 数据模型中有用的表格。此前缀可能置于 LOAD 或 SELECT 语句前面,并会使用加载的语句结果作为表格转换的输入。
HierarchyBelongsTo (NodeID, ParentID, NodeName, AncestorID, AncestorName, [DepthDiff])(loadstatement | selectstatement)
可在 join 和 keep 前缀前面使用 inner 前缀。
如果用于 join 之前,说明应使用内部联接。由此生成的表格仅包含原始数据表格(其中链接字段值在两个表格中均有呈现)的字段值组合。如果用于 keep 之前,说明在 Qlik Sense 中存储这些表格之前,首先应使两个原始数据表格缩减为它们的共同交集。
.Inner ( Join | Keep) [ (tablename) ](loadstatement |selectstatement )
IntervalMatch 前缀用于创建表格以便将离散数值与一个或多个数值间隔进行匹配,并且任选匹配一个或多个额外关键值。
IntervalMatch (matchfield)(loadstatement | selectstatement )
IntervalMatch (matchfield,keyfield1 [ , keyfield2, ... keyfield5 ] ) (loadstatement | selectstatement )
join 前缀可连接加载的表格和现有已命名的表格或最近创建的数据表。
[Inner | Outer | Left | Right ] Join [ (tablename ) ]( loadstatement | selectstatement )
keep 前缀类似于 join 前缀。与 join 前缀一样,该前缀可用来将加载的表格与现有的命名表格或最后一个之前创建的数据表格进行比较,而不是将加载的表格与现有的表格进行合并,它可以在将表格存储在 Qlik Sense 中之前,根据表格数据的交集减少一个或同时减少两个表格。这种比较相当于对所有共同字段进行自然联接,即等同于相应联接的方式。但是,这两个表格并未合并,而将作为两个单独命名的表格保留在 Qlik Sense 中。
(Inner | Left | Right) Keep [(tablename ) ]( loadstatement | selectstatement )
可在 Join 和 Keep 前缀前面使用 left 前缀。
如果用于 join 之前,说明应使用左侧联接。由此生成的表格仅包含原始数据表格的字段值组合,在原始数据表格中,链接字段值呈现在第一个表格中。如果用于 keep 之前,说明首先应使第二原始数据表格缩减为其与第一表格间的共同交集,然后才可在 Qlik Sense 中存储此表格。
Left ( Join | Keep) [ (tablename) ](loadstatement |selectstatement )
mapping 前缀用于创建映射表,例如,此映射表在脚本运行期间可用于替换字段值和字段名。
Mapping ( loadstatement | selectstatement )
可将前缀 Merge 添加至脚本中的任何 LOAD 或 SELECT 语句,以指定加载的表格应当合并到另一表中。它还指定此语句应在部分重新加载中运行。
Merge [only] [(SequenceNoField [, SequenceNoVar])] On ListOfKeys [Concatenate [(TableName)]] (loadstatement | selectstatement)
NoConcatenate 前缀强制将两个使用相同字段集的加载表格处理为两个单独的内部表格(当它们以其他方式自动串联时)。
NoConcatenate( loadstatement | selectstatement )
显式 Join 前缀前面可带前缀 Outer 以指定外部联接。在外部联接中,生成两个表格之间的所有组合。由此生成的表格包含原始数据表格(其中链接字段值在两个表格中均有呈现)的字段值组合。Outer 关键字是可选型,并用作未指定联接前缀时的默认联接类型。
Outer Join [ (tablename) ](loadstatement |selectstatement )
完全重新加载总是从删除现有数据模型中的所有表开始,然后运行加载脚本。
部分加载 将不进行该操作。相反,它会保留数据模型中的所有表格,然后仅执行 Load 和 Select 语句,这些语句带有前缀 Add、Merge 或 Replace 前缀。其他数据表不受该命令的影响。only 参数表示只应在部分重新加载期间执行该语句,而在完全重新加载期间应忽略该语句。下表总结了部分和完全重新加载的语句执行情况。
可在 Join 和 Keep 前缀前面使用 right 前缀。
如果用于 join 之前,说明应使用右侧联接。由此生成的表格仅包含原始数据表格的字段值组合,原始数据表格中的链接字段值呈现在第二个表格中。如果用于 keep 之前,说明首先应使第一原始数据表格缩减为其与第二表格间的共同交集,然后才可在 Qlik Sense 中存储此表格。
Right (Join | Keep) [(tablename)](loadstatement |selectstatement )
LOAD 或 SELECT 语句的 sample 前缀用于从数据源载入记录的随机样本。
Sample p ( loadstatement | selectstatement )
可通过 semantic 前缀加载包含两个记录之间关系的表格。例如,这可以是表格内的自引用,即其中一个记录指向另一个记录,如所属的父项或祖先。
Semantic ( loadstatement | selectstatement)
unless 前缀和后缀用于创建确定是否应计算语句或 exit 子句的条件子句。它可以被看作是完整的 if..end if 语句的简洁替代形式。
(Unless condition statement | exitstatement Unless condition )
when 前缀和后缀用于创建确定是否应执行语句或 exit 子句的条件子句。它可以被看作是完整的 if..end if 语句的简洁替代形式。
( When condition statement | exitstatement when condition )