dbt jinja "elif" 功能?
dbt jinja "elif" functionality?
根据 jinja 文档,在 if
和 else
流中存在 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 %}
我经常在 dbt jinja 中使用 elif
没有问题。你有没有这个可用的原因?
忽略上面的问题 - 这是一个缩进问题。
{% elif %}
标签工作正常。
根据 jinja 文档,在 if
和 else
流中存在 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 %}
我经常在 dbt jinja 中使用 elif
没有问题。你有没有这个可用的原因?
忽略上面的问题 - 这是一个缩进问题。
{% elif %}
标签工作正常。