SUPERSET 从 python 中的循环生成 SQL 模板

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

我想在超集中使用 jinja 模板创建一个简单的 sql,但这不起作用。 输入

{{n}} -- this is where we set the parameter or range to use 
{% for i in range(n): %}
    {% s+=f'SELECT i\n' %}
    {% if i < n-1: %}
        {% s+='UNION ALL\n'%}
    {% end if %}
{% end for %}

在 python 中,代码可能如下所示

s = ""
n = 5
for i in range(5):
    s+=f'SELECT {i}\n'
    if i < n-1:
        s+='UNION ALL\n'

预期产出

SELECT 0
UNION ALL
SELECT 1
UNION ALL
SELECT 2
UNION ALL
SELECT 3
UNION ALL

帮助感激谢谢!

python sql jinja2 apache-superset
1个回答
0
投票

您想要实现的目标可以通过以下脚本完成

{% set n = 3 %}
{% for i in range(n): %}
  {% if i == 0 %}
    SELECT {{i}}
  {% else %}
    UNION ALL SELECT {{i}}
  {% endif %}
{% endfor %}
© www.soinside.com 2019 - 2024. All rights reserved.