如何在Redash中通过筛选器值控制Presto查询的代码执行?
解决Redash筛选参数控制Presto查询代码的问题
你遇到的错误是因为Redash的Jinja2模板语法用错了——在{% if %}这类模板标签里,直接用参数名就行,不需要再套一层{{}}。原来的写法会让Presto读到未被模板引擎处理的{符号,自然触发语法错误。
正确的写法应该是这样:
select 1 col {% if dummyfilter == 'a' %} union select 100 {% endif %}
注意两点:
- 条件里直接写参数名
dummyfilter,不用加{{}} - 结束标签要用
{% endif %},不是{% end %}
这样当你把筛选器dummyfilter的值设为'a'时,模板引擎会自动把union select 100这部分拼进查询;选其他值时,这部分就会被跳过,最终执行的只有select 1 col。
内容的提问来源于stack exchange,提问作者Mel
相关产品推荐
相关产品推荐

