You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DBT带参数宏中IF条件传入TABLE1/TABLE2时判断失效

问题原因及解决方法

你的DBT宏条件判断失效,核心是两个低级错误导致:

  • 在Jinja2的if语句块内,直接引用宏参数不需要套{{}}——你当前的写法会把modelName当成字符串字面量'{{modelName}}',而非传入的参数值
  • 代码里用了中文单引号,Jinja2无法识别这种符号,必须使用英文单引号

修正后的宏代码:

{% macro cloud_test_results_get_standard_columns(modelName) %}
result,
Length,
estimatedLength as estimatedLength,
{% if modelName == 'TABLE1' %}
    TABL1_COL1,
    TABL1_COL1,
    TABL1_COL1,
{% elif modelName == 'TABLE2' %}
    TABL2_COL1,
    TABL2_COL1,
    TABL2_COL1,
{% else %}
    TABL_DEFAULT1,
    TABL_DEFAULT2,
    TABL_DEFAULT3,
{% endif %}
{% endmacro %}

额外提醒:你原代码中TABLE2分支的列名还是TABL1_COL1,建议改成对应TABLE2的列名,避免后续逻辑混淆。

内容的提问来源于stack exchange,提问作者jks20

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 22:15:39