- 类别:
半结构化和结构化数据函数 (数组/对象)
ARRAY_SLICE¶
返回从输入数组的指定元素子集构造的数组。
语法¶
实参¶
array源数组,其中元素的子集用于构造结果数组。
from源数组中的位置。第一个元素的位置是
0。小于from的位置的元素不包含在生成的数组中。to源数组中的位置。等于或大于
to的位置的元素不包含在结果数组中。
返回¶
此函数返回 ARRAY 类型的值。
如果任何实参为 NULL,包括输入 array、from 或 to,则返回 NULL。
使用说明¶
输出包括元素 截取位置,但不包括 参数
to指定的元素。如果
from或to之一为负数,则相对于数组的末尾,而不是数组的开头。例如,-2是指数组中倒数第二个位置。如果
from和to都超出了数组的上端,或者都超出了数组的下端,则结果是空集。当您将 结构化数组 传递给该函数时,该函数会返回相同类型的结构化数组。
请注意,其中许多规则(例如,将负数解释为数组末尾的索引,以及包括切片截取位置,但不包括 to 索引的规则)类似于编程语言(如 Python)中的数组切片规则。
这些规则中的每一个都在下面的至少一个示例中进行了说明。
示例¶
这些示例使用 ARRAY 常量 构造数组。或者,您可以使用 ARRAY_CONSTRUCT 函数构造数组。
此示例展示了一个简单的数组切片:
此示例使用 ARRAY_SIZE 函数和 ARRAY_SLICE 函数将数组切片截取到最后一个索引:
尽管索引必须是数字,但数组的元素不需要是数字:
此示例显示了使用 NULL 作为输入数组的效果:
此示例显示了使用 NULL 作为切片索引之一的效果:
此示例显示了使用负数作为索引的效果。该数字被解释为数组末尾的偏移量:
此示例表明两个索引都可以是负数(即,两者都可以相对于数组的末尾):
在此示例中,两个索引都超出了数组的末尾:
在此示例中,两个索引都位于数组的开头之前: