sq问题' IN' Avatica方解中的语法

时间:2017-09-21 01:17:33

标签: druid apache-calcite

我使用Avatica方解石作为JDBC驱动程序来查询Druid DB。我找到了' IN'语法不能超过19个元素。 e.g

SELECT * FROM ds1 WHERE city_id IN 
    (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19) 

这可行,但这一个错误:

SELECT * FROM ds1 WHERE city_id IN 
    (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20) 

我如何使用' IN'语法超过19个元素?

1 个答案:

答案 0 :(得分:1)

https://github.com/druid-io/druid/issues/4203中描述了这不起作用的原因。在Calcite 1.14发布后,它应该在Druid SQL中修复,这将让我们更多地定制它的行为。

在此之前,请尝试@melpomene建议的解决方法,该方法应该有效:

SELECT * FROM ds1 WHERE
     city_id IN (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19)
  OR city_id IN (20,21,22)