Как я могу использовать функцию arrayExists, когда массив содержит нулевое значение?
У меня в таблице есть столбец массива, допускающий значение NULL: Array(Nullable(UInt16)). Я хочу иметь возможность запросить этот столбец с помощью arrayExists (или arrayAll), чтобы проверить, содержит ли он значение выше определенного порога, но я получаю исключение, когда массив содержит нулевое значение:
Исключение: выражение для функции arrayExists должно возвращать UInt8, найдено Nullable(UInt8)
Мой запрос ниже, где расстояние это столбец массива:
SELECT * из TracabEvents_ArrayTest, где arrayExists(x -> x > 9, расстояние);
Я попытался обновить сравнение в лямбда-выражении до "(isNotNull(x) и x > 9)", но я все еще получаю ошибку. Есть ли способ обработки пустых значений в этих выражениях или они еще не поддерживаются?
Спасибо
1 ответ
Добавьте условие для фильтрации строк с пустым списком, используя notEmpty и acceptNotNull для x в arrayExists.
SELECT * FROM TracabEvents_ArrayTest WHERE notEmpty(distance) AND arrayExists(x -> assumeNotNull(x) > 9, distance)