Последнее обновление
MAP_FROM_ARRAYS
Описание
Создаёт MAP<K, V> из массива ключей и массива значений. Элементы на одинаковых позициях образуют пару «ключ-значение».
примечание
Эта функция поддерживается начиная с Apache Doris 4.2.
Синтаксис
MAP_FROM_ARRAYS(<keys>, <values>)
Параметры
| Параметр | Описание |
|---|---|
<keys> | Массив типа ARRAY<K>. K должен быть типом, поддерживаемым для ключей MAP. Массив и его элементы могут иметь значение NULL. |
<values> | Массив типа ARRAY<V>. Массив и его элементы могут иметь значение NULL. Если оба массива отличны от NULL, количество элементов в этом массиве должно совпадать с количеством элементов в <keys>. |
Возвращаемое значение
Возвращает MAP<K, V>.
- Если любой из входных массивов имеет значение
NULL, возвращаетNULL. - Элементы
NULLсохраняются в результате как ключи или значения со значениемNULL. - Если оба массива отличны от
NULL, но имеют разную длину, возникает ошибка. Длина другого массива не проверяется, если любой из массивов имеет значениеNULL. - Если ключ встречается несколько раз, сохраняется значение из последнего вхождения.
- Если аргумент не является массивом или
Kне относится к типам, поддерживаемым для ключей MAP, возникает ошибка анализа.
Примеры
SELECT map_from_arrays([1, 2], [10, 20]) AS result;
+--------------+
| result |
+--------------+
| {1:10, 2:20} |
+--------------+
SELECT map_from_arrays([1, 1], [10, 20]) AS result;
+--------+
| result |
+--------+
| {1:20} |
+--------+
SELECT map_from_arrays(CAST(NULL AS ARRAY<INT>), [10]);
+-------------------------------------------------+
| map_from_arrays(CAST(NULL AS ARRAY<INT>), [10]) |
+-------------------------------------------------+
| NULL |
+-------------------------------------------------+
SELECT map_from_arrays(
array(CAST(NULL AS INT), 2),
array(10, CAST(NULL AS INT))) AS result;
+-------------------+
| result |
+-------------------+
| {null:10, 2:null} |
+-------------------+
SELECT map_from_arrays([1, 2], [10]);
ERROR 1105 (HY000): The key and value array offsets of function map_from_arrays must be identical