Последнее обновление
MAP_EXISTS
Описание
Проверяет каждый элемент отображения с помощью лямбда-выражения и возвращает результат, указывающий, удовлетворяет ли хотя бы один элемент заданному условию. Лямбда-выражение получает ключ и значение каждого элемента.
Синтаксис
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 |
+--------+