- 类别:
半结构化和结构化数据函数 (数组/对象)
ARRAYS_TO_OBJECT¶
返回一个 OBJECT,其中包含一个输入 ARRAY 指定的键和另一个输入 ARRAY 指定的值。
语法¶
ARRAYS_TO_OBJECT( <key_array> , <value_array> )
实参¶
key_array
VARCHAR 值的 ARRAY,这些值指定新 OBJECT 的键。
value_array
新 OBJECT 的值的 ARRAY。此 ARRAY 的长度必须与
key_array
相同。此 ARRAY 中的值应与key_array
中的键相对应。
返回¶
该函数返回 OBJECT 类型的值。OBJECT 包含输入 ARRAYs 指定的键和值。
使用说明¶
如果
key_array
中的任何元素不是字符串,该函数将报告以下错误:215002 (22000): Key supplied for ARRAYS_TO_OBJECT does not have string type
key_array
和value_array
的长度必须相等。否则,该函数将报告以下错误:215001 (22000): Key array and value array had unequal lengths in ARRAYS_TO_OBJECT
如果
key_array
中的某个元素是 NULL,则在返回的 OBJECT 中将省略该键和相应的值。如果键不是 NULL,但
value_array
中的相应元素是 NULL,则键和 NULL 值都包含在返回的 OBJECT 中。返回的 OBJECT 不一定保留键值对的原始顺序。
此函数不支持将 结构化类型 作为输入实参。
示例¶
下面的示例返回一个 OBJECT,其中包含由两个输入 ARRAYs 指定的键值对:
SELECT ARRAYS_TO_OBJECT(['key1', 'key2', 'key3'], [1, 2, 3]);
+-------------------------------------------------------+
| ARRAYS_TO_OBJECT(['KEY1', 'KEY2', 'KEY3'], [1, 2, 3]) |
|-------------------------------------------------------|
| { |
| "key1": 1, |
| "key2": 2, |
| "key3": 3 |
| } |
+-------------------------------------------------------+
在下面的示例中,键的 ARRAY 包含一个 NULL 值。返回的 OBJECT 中省略该键和相应的值。
SELECT ARRAYS_TO_OBJECT(['key1', NULL, 'key3'], [1, 2, 3]);
+-----------------------------------------------------+
| ARRAYS_TO_OBJECT(['KEY1', NULL, 'KEY3'], [1, 2, 3]) |
|-----------------------------------------------------|
| { |
| "key1": 1, |
| "key3": 3 |
| } |
+-----------------------------------------------------+
在下面的示例中,值的 ARRAY 包含一个 NULL 值。该值和相应的键将包含在返回的 OBJECT 中。
SELECT ARRAYS_TO_OBJECT(['key1', 'key2', 'key3'], [1, NULL, 3]);
+----------------------------------------------------------+
| ARRAYS_TO_OBJECT(['KEY1', 'KEY2', 'KEY3'], [1, NULL, 3]) |
|----------------------------------------------------------|
| { |
| "key1": 1, |
| "key2": null, |
| "key3": 3 |
| } |
+----------------------------------------------------------+