- 类别:
:doc:`/sql-reference/functions-semistructured`(数组/对象的创建和操作)
ARRAYS_ZIP¶
返回 对象 的一个 数组,每个对象都包含输入数组中第 n 个元素的键值对。例如,在返回的数组中,第一个对象包含输入数组中每个第一个元素的键值对,第二个对象包含输入数组中每个第二个元素的键值对,依此类推。
语法¶
实参¶
array输入数组。
输入数组的长度可以不同。
如果任何输入数组为 结构化数组,则所有输入数组都必须是结构化数组。
返回¶
返回以下类型之一的值:
如果输入数组是半结构化数组,则该函数返回由结构化对象组成的半结构化数组。
如果输入数组是结构化数组,则该函数返回由结构化对象组成的结构化数组。结构化对象的定义取决于输入数组的数量和数组中值的类型。
如果任何输入数组为 NULL,则该函数返回 NULL。
每个对象都包含输入数组中第 n 个元素值的键值对。键($1、$2 等)代表输入数组的位置。
例如,假设你传入了以下数组:
该函数返回以下对象数组:
在返回的数组中:
第一个对象包含所有输入数组的第一个元素。
第二个对象包含所有输入数组的第二个元素。
第三个对象包含所有输入数组的第三个元素。
对象中的键标识输入数组:
$1键值对包含来自第一个输入数组的值。$2键值对包含来自第二个输入数组的值。$3键值对包含来自第三个输入数组的值。
使用说明¶
返回的数组与最长的输入数组一样长。如果某些输入数组较短,则该函数使用 JSON 空值 来表示较短数组中缺少的其余元素。
如果输入数组包含一个 NULL 元素,则该函数为该元素返回一个 JSON 空值。
示例¶
以下示例演示了该函数的工作原理:
一个输入数组¶
以下示例返回一个对象数组,该数组包含单个数组中的第一、第二和第三个元素:
多个输入数组¶
以下示例返回一个对象数组,该数组包含输入数组中的第一、第二和第三个元素:
不同长度的输入数组¶
以下示例传入了不同长度的输入数组。对于较短数组中不存在的值,该函数在对象中使用 JSON 空值。
NULL 和空数组处理¶
如下例所示,为任何输入数组传入一个 NULL 都将导致该函数返回一个 SQL NULL:
在以下示例中,所有输入数组均为空,这导致该函数返回一个空对象:
在以下示例中,输入数组中的一些元素为 NULL。在返回的对象中,这些元素的值为 JSON null: