2

我的表中有一个可为空的数组列:Array(Nullable(UInt16))。我希望能够使用 arrayExists (或 arrayAll )查询此列以检查它是否包含高于某个阈值的值,但是当数组包含空值时出现异常:

例外:函数 arrayExists 的表达式必须返回 UInt8,发现 Nullable(UInt8)

我的查询低于距离是数组列的位置:

SELECT * from TracabEvents_ArrayTest
where arrayExists(x -> x > 9, distance);

我尝试将 lambda 中的比较更新为“(isNotNull(x) and x > 9)”,但仍然出现错误。有没有办法处理这些表达式中的空值,或者它们还不支持?

4

1 回答 1

4

添加条件以使用 notEmpty 过滤具有空列表的行,并为 arrayExists 中的 x 假设 NotNull。

SELECT * FROM TracabEvents_ArrayTest WHERE notEmpty(distance) AND arrayExists(x -> assumeNotNull(x) > 9, distance)
于 2017-12-08T07:07:42.790 回答