类别:

半结构化和结构化数据函数 (数组/对象)

ARRAYS_TO_OBJECT

返回一个 OBJECT,其中包含一个输入 ARRAY 指定的键和另一个输入 ARRAY 指定的值。

语法

ARRAYS_TO_OBJECT( <key_array> , <value_array> )
Copy

实参

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_arrayvalue_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]);
Copy
+-------------------------------------------------------+
| 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]);
Copy
+-----------------------------------------------------+
| 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]);
Copy
+----------------------------------------------------------+
| ARRAYS_TO_OBJECT(['KEY1', 'KEY2', 'KEY3'], [1, NULL, 3]) |
|----------------------------------------------------------|
| {                                                        |
|   "key1": 1,                                             |
|   "key2": null,                                          |
|   "key3": 3                                              |
| }                                                        |
+----------------------------------------------------------+
语言: 中文