Перейти к содержимому
Последнее обновление

MAP_ALL

SinceVersion dev

Описание​

Проверяет каждую запись в карте с помощью лямбда-выражения и возвращает результат проверки того, удовлетворяют ли все записи заданному условию. Лямбда-выражение принимает ключ и значение каждой записи.

Синтаксис​

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 |
+--------+