在 dbt 模型中使用 if 块
Posted
技术标签:
【中文标题】在 dbt 模型中使用 if 块【英文标题】:Using if block in dbt models 【发布时间】: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() 【参考方案1】:我最终得到了这个工作。必须将变量名放在 var()
中SELECT
*
FROM
% if var('enable_whitelisting') == 'true' %
ref('accounts_whitelisted') accounts
% else %
ref('accounts') accounts
% endif %
【讨论】:
您能解释一下原因吗?以上是关于在 dbt 模型中使用 if 块的主要内容,如果未能解决你的问题,请参考以下文章