用途:为编写 Qlik 加载脚本提供语法参考与模式库,重点规避 AI 生成脚本时最常见的 SQL 语法误用。
主要能力:
- 脚本生成约束:列出 LOAD 语句中不存在的 SQL 构造及替代写法,如 HAVING 用前置 LOAD + WHERE、Count(*) 用 Count(字段)、SELECT DISTINCT 用 LOAD DISTINCT、IS NULL 用 IsNull()、BETWEEN 用范围比较、IN 用 Match()/WildMatch()、CASE WHEN 用 IF()/Pick()/Match()、LIMIT 用 FIRST n LOAD、窗口函数用 RowNo()/Previous()/Peek()、UNION 用 CONCATENATE、EXCEPT/INTERSECT 用 EXISTS/NOT EXISTS。SQL SELECT 直通语句仍可用原生 SQL。
- SET 与 LET:SET 保留右侧为字面文本,LET 在加载时求值一次;SET 不求值函数调用,如 SET HidePrefix=Chr(37) 会存字面字符串。
- 美元符号展开:$() 内逗号是参数分隔符,含逗号的表达式不能作为变量函数参数;空变量展开会导致语法错误,需在赋值时用 Alt() 兜底或展开前判空。
- 前置 LOAD:两个 LOAD 共享一个源,内层先执行,外层可引用内层计算字段,避免重复复杂表达式,也可替代 HAVING。
- 日期与数字解释:Qlik 使用双重值,Date#() 解析文本为序列值,Date() 格式化显示;Num#()/Num() 同理;未指定格式时依赖 SET DateFormat,可能静默误读。
- 空值处理:区分字符串编码空值、真实 SQL NULL 与哨兵日期,分别用 vCleanNull、NullAsValue(需重置)、显式 IsNull 与范围守卫;键字段不应掩盖空值。
- 数据驱动模式:ApplyMap 映射分桶、IntervalMatch 处理区间匹配、Dual 构造布尔字段、元数据驱动表加载、Concat+Peek 构建 UI 变量。
- JOIN/KEEP:Qlik 按所有同名字段连接,非键字段重名会静默出错,连接前需别名化非键字段;键不唯一会导致行倍增。
- ApplyMap:键值查找,比 JOIN 更快且无行倍增,可提供默认值;结果别名不能与查找字段同名,否则静默覆盖原值。
- QVD 操作:STORE 每条语句写一个表,无追加模式。
使用方式:作为编写或审查 Qlik 加载脚本时的参考,按主题查阅对应章节与引用文件。
适用场景:Qlik 数据加载脚本开发、SQL 到 Qlik 脚本迁移、增量加载与 SCD2 实现、数据模型连接与空值治理。
限制:不涵盖命名规范、数据模型设计、表达式语法与性能优化(分别见其他技能);资料未提供具体安装命令、收费信息或平台要求。