用途:在 LookML 中通过 Liquid 变量实现动态 SQL、HTML 与链接,并借助条件逻辑优化查询。
主要能力:支持输出语法 {{ value }} 与标签语法 {% if condition %};可用变量包括 value(原始值,适合比较)、rendered_value(格式化值,适合展示)、_filters['view.field'](用户筛选值)、parameter_name._parameter_value(参数值)。提供 _in_query、_is_selected、_is_filtered 等判断变量,以及 _user_attributes、_model._name、_view._name、_explore._name、_field._name 等元数据变量。
使用方式:在 sql、sql_on、sql_table_name、html、link、description、label 等参数中嵌入 Liquid。插入用户输入到 SQL 字符串字面量时使用 | sql_quote;需要布尔字面量时对 _in_query 或 _is_selected 追加 | sql_boolean。可用 {% condition filter %} sql {% endcondition %} 应用筛选逻辑,用 {% date_start %}、{% date_end %} 获取日期范围。
适用场景:聚合感知(按 _in_query 动态选择汇总表)、动态连接(按 _in_query 决定是否连接重表)、列相关逻辑(按 _is_selected 切换分母)、条件格式化 HTML、派生表模板筛选、复杂参数解析(split 与 for 循环)。
限制与注意:_in_query 检查 SELECT、Filters 与 required_fields,不限于可见列;_is_selected 在 Totals 计算中对维度返回 false,若需逻辑在 Totals 中保留应使用 _in_query。在链接参数中引用 {{ field._value }} 可能迫使 Looker 将字段加入 GROUP BY 导致结果扇出,若只需浏览器结果行中的值应改用 row['view.field']。sql_where 的 1=1/1=0 技巧仅在部分方言有效。具体方言支持与版本要求暂未提供。