首页 > 解决方案 > 在 dbt 模型中使用 if 块

问题描述

很抱歉提出愚蠢的问题。但我尝试了许多不同的方法,但似乎都没有奏效。

我需要根据变量从 2 个不同的表中选择数据。我正在尝试使用 if 语句在 dbt 模型中执行此操作,但它似乎不起作用。

模型看起来很薄:

SELECT 
*
FROM
{% if enable_whitelisting == 'true' %}
    {{ ref('accounts_whitelisted') }}    accounts
{% else %}
        {{ ref('accounts') }}   accounts
{% endif %}

任何帮助表示赞赏。

提前致谢。

标签: jinja2dbt

解决方案


我最终得到了这个工作。必须将变量名放在var()中

SELECT 
*
FROM
{% if var('enable_whitelisting') == 'true' %}
    {{ ref('accounts_whitelisted') }}    accounts
{% else %}
        {{ ref('accounts') }}   accounts
{% endif %}

推荐阅读