我想创建一个 dbt 宏来简化以下几行
COALESCE(LOWER(tags::TEXT) ~ '.*my-first-query.*', FALSE),
COALESCE(LOWER(tags::TEXT) ~ '.*my-second-query.*', FALSE),
COALESCE(LOWER(tags::TEXT) ~ '.*my-other-query.*', FALSE)
我想将计算转换为一个函数,以便我可以将行转换为
{{ extract_clean_tag(my-first-query) }},
{{ extract_clean_tag(my-second-query) }},
{{ extract_clean_tag(my-other-query) }}
如何在 dbt 中编写此宏?我在将字符串作为参数传递给函数时遇到问题。
到目前为止,我已经尝试过类似的东西
{% macro extract_clean_tag(tag_regex) %}
COALESCE(LOWER(tags::TEXT) ~ '.*{{ tag_regex }}.*', FALSE)
{% endmacro %}
并通过 调用它extract_clean_tag(my-first-query)
,但 dbt 返回:
column "my-first-query" does not exist