sql Avatica 方解石中的 'IN' 语法问题
sql issue of 'IN' syntax in Avatica calcite
我正在使用 Avatica 方解石作为 JDBC 驱动程序来查询 Druid DB。我发现 'IN' 语法后跟的元素不能超过 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)
这行得通,但有一个错误:
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 个元素?
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)
我正在使用 Avatica 方解石作为 JDBC 驱动程序来查询 Druid DB。我发现 'IN' 语法后跟的元素不能超过 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)
这行得通,但有一个错误:
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 个元素?
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)