【问题标题】:How to merge tuples from macros in DBT如何在 DBT 中合并宏中的元组
【发布时间】:2021-10-19 17:49:17
【问题描述】:

希望将来自不同宏的元组合并为一个。如以下代码,目的是合并

的输出
{% macro days15() %}
    (1, 2, 3, 4, 5)                                                                                                                           
{% endmacro %}

{% macro days69() %}
    (6,7,8,9)
{% endmacro %}

{% macro days19() %}
    {{ days15() }} UNION ALL {{ days69() }}
{% endmacro %}

期望days19 返回一个具有days15days69 联合值的元组。

【问题讨论】:

    标签: sql jinja2 dbt


    【解决方案1】:

    我知道我没有直接回答您的问题,但是对于您的“用例”,更好、更 DRY 的方法是创建 1 个带有 2 个参数的宏,如下所示:

    {% macro days(from, to) %}
        (
            {%- for i in range(from, to + 1) -%}
            {{ i }}{{ ',' if not loop.last }}
            {%- endfor -%}
        )
    {% endmacro %}
    

    然后您可以使用days(1, 5)days(6, 9)days(1, 9) 调用宏

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-26
      • 2013-04-24
      • 2023-02-24
      • 2022-10-04
      • 1970-01-01
      • 2019-05-01
      相关资源
      最近更新 更多