【问题标题】:dbt jinja "elif" functionality?dbt jinja“elif”功能?
【发布时间】:2021-10-07 18:02:23
【问题描述】:

根据 jinja 文档,ifelse 流中的 else if 案例存在一个标签:Jinja Control Strucutures/IF

寻找一种在 dbt 宏中执行此操作的方法,例如:

my_macro.sql

-- macros/my_macro.sql
{% macro my_macro() %}
  {% if target.name == 'default' %}
      select 'A' as my_letter;
  {% elif target.name == 'dev' %}
      select 'B' as my_letter;
  {% elif target.name == 'qa' %}
      select 'C' as my_letter;
  {% elif target.name == 'prod' %}
      select 'D' as my_letter;
  {% else %}
     select 1; -- hooks will error if they don't have valid SQL in them, this handles that!
  {% endif %}

{% endmacro %}

如果elif 标签或同等标签不可用,我有什么选择? 像下面这样的吗?

-- macros/my_macro.sql
{% macro my_macro() %}
  
  {% if target.name == 'default' %}
    select 'A' as my_letter;
  {% else %}
    select 1;
  {% endif %}
  
  {% if target.name == 'dev' %}
    select 'B' as my_letter;
  {% else %}
    select 1;
  {% endif %}
  
  {% if target.name == 'qa' %}
    select 'C' as my_letter;
  {% else %}
    select 1;
  {% endif %}
  
  {% if target.name == 'prod' %}
    select 'D' as my_letter;
  {% else %}
    select 1;
  {% endif %}

{% endmacro %}

【问题讨论】:

    标签: if-statement jinja2 dbt


    【解决方案1】:

    我经常在 dbt jinja 中使用elif 没有问题。你没有这个是有原因的吗?

    【讨论】:

      【解决方案2】:

      忽略上面的问题 - 这是一个缩进问题。

      {% elif %} 标签工作正常。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-08-03
        • 1970-01-01
        • 2021-11-25
        • 1970-01-01
        • 2022-12-05
        • 2021-08-30
        • 1970-01-01
        相关资源
        最近更新 更多