创建Sql Statement IN DBT宏并在dbt模型中使用查询

问题描述 投票:0回答:1

my_macro.sql

{macro my_macro(value)}

{% set query  %}

select A from value

{{ return(query) }}

{% endset %}

{% endmacro %}

模型.sql

select * from B
where A in ({{ my_macro(value) }}

当我编译代码时 我得到的结果是

输出:

select * from B
Where A in (     )

我没有将 sql 语句作为宏的输出

我知道我们可以执行查询并获取结果,我们可以将查询作为字符串传递吗?

这在 DBT 中真的可能吗?.

python sql snowflake-cloud-data-platform jinja2 dbt
1个回答
0
投票

你差不多明白了。只需三件事:

  1. 返回前移动
    {% endset %}
  2. 更改
    value
    {{ value }}
  3. 尽量避免对表引用进行硬编码,并使用
    source()
    ref()
{macro my_macro(value)}

{% set query  %}

select A from {{ value }}

{% endset %}

{{ return(query) }}

{% endmacro %}
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.