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

MAP_EXISTS

SinceVersion dev

Описание​

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

Синтаксис​

MAP_EXISTS((<key>, <value>) -> <predicate>, <map>)

Параметры​

ПараметрОписание
<key>Параметр лямбда-выражения, представляющий ключ элемента отображения.
<value>Параметр лямбда-выражения, представляющий значение элемента отображения.
<predicate>Логическое выражение, вычисляемое для каждого элемента отображения.
<map>Выражение типа MAP<K, V>.

Возвращаемое значение​

Возвращает значение типа BOOLEAN.

  • Возвращает TRUE, если предикат возвращает TRUE хотя бы для одного элемента.
  • Возвращает FALSE, если предикат возвращает FALSE для каждого элемента, в том числе если отображение пусто.
  • Возвращает NULL, если ни для одного элемента не получено TRUE, а хотя бы для одного элемента получено NULL.
  • Если <map> имеет значение NULL, возвращает NULL.

Примеры​

SELECT map_exists((k, v) -> v = 20, map(1, 10, 2, 20)) AS result;
+--------+
| result |
+--------+
| 1 |
+--------+
SELECT map_exists((k, v) -> v > 20, map(1, 10, 2, 20)) AS result;
+--------+
| result |
+--------+
| 0 |
+--------+
SELECT map_exists((k, v) -> CAST(NULL AS BOOLEAN), map(1, 10)) AS result;
+--------+
| result |
+--------+
| NULL |
+--------+
SELECT map_exists((k, v) -> v > 0, CAST(NULL AS MAP<INT, INT>)) AS result;
+--------+
| result |
+--------+
| NULL |
+--------+