【发布时间】:2017-11-26 10:14:33
【问题描述】:
我正在尝试运行类似以下查询:
SELECT * FROM foo WHERE cardinality(bar) > 0 AND bar[1] = '...';
但是,我收到了Query failed: Array subscript out of bounds。我假设这是因为 Presto 试图通过在检查 cardinality(bar) > 0 之前检查 bar[1] = '...' 来优化查询。有没有办法强制 Presto 保持子句的顺序?
【问题讨论】:
-
SQL 不是短路的。如果您需要特定的评估顺序,可以使用
if或case。在您的特定情况下,下面的答案完全有道理。