Последнее обновление
MAP_ALL
Описание
Проверяет каждую запись в карте с помощью лямбда-выражения и возвращает результат проверки того, удовлетворяют ли все записи заданному условию. Лямбда-выражение принимает ключ и значение каждой записи.
Синтаксис
MAP_ALL((<key>, <value>) -> <predicate>, <map>)
Параметры
| Параметр | Описание |
|---|---|
<key> | Параметр лямбда-выражения, представляющий ключ записи в карте. |
<value> | Параметр лямбда-выражения, представляющий значение записи в карте. |
<predicate> | Логическое выражение, вычисляемое для каждой записи в карте. |
<map> | Выражение типа MAP<K, V>. |
Возвращаемое значение
Возвращает значение типа BOOLEAN.
- Возвращает
FALSE, если предикат возвращаетFALSEхотя бы для одной записи. - Возвращает
TRUE, если предикат возвращаетTRUEдля каждой записи, в том числе если карта пуста. - Возвращает
NULL, если ни для одной записи предикат не возвращаетFALSEи хотя бы для одной записи возвращаетNULL. - Если
<map>имеет значениеNULL, возвращаетNULL.
Примеры
SELECT map_all((k, v) -> v >= 10, map(1, 10, 2, 20)) AS result;
+--------+
| result |
+--------+
| 1 |
+--------+
SELECT map_all((k, v) -> v > 10, map(1, 10, 2, 20)) AS result;
+--------+
| result |
+--------+
| 0 |
+--------+
SELECT map_all((k, v) -> CAST(NULL AS BOOLEAN), map(1, 10)) AS result;
+--------+
| result |
+--------+
| NULL |
+--------+
SELECT map_all((k, v) -> v > 0, CAST(NULL AS MAP<INT, INT>)) AS result;
+--------+
| result |
+--------+
| NULL |
+--------+