【问题标题】:Using if block in dbt models在 dbt 模型中使用 if 块
【发布时间】:2021-01-07 14:20:46
【问题描述】:

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

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

模型看起来很瘦:

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

感谢任何帮助。

提前致谢。

【问题讨论】:

  • 嘿拉维。你能分享更多信息吗?运行时是否出现错误?你能分享一下编译后的代码是什么样的吗?你是如何传递变量的?
  • 嗨@dylanbaker,我解决了我的问题。我在下面回答。变量名必须放在 var()

标签: jinja2 dbt


【解决方案1】:

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

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

【讨论】:

  • 您能解释一下原因吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-11
  • 1970-01-01
  • 2021-05-09
  • 1970-01-01
  • 2022-01-06
相关资源
最近更新 更多