对ARRAY数组切片,截取从start位置开始长度为length的元素组成新的ARRAY数组。
命令格式
array<T> slice(array<T> <a>, <start>, <length>)参数说明
a:必填。ARRAY数组。
array<T>中的T指代ARRAY数组元素的数据类型,数组中的元素可以为任意类型。start:必填。切片起点,从1开始,表示从数组的首个元素开始向右切片。start可以为负数,表示从数组的末尾元素开始向右切片。
length:必填。切片长度,必须大于或等于0。切片长度如果大于ARRAY数组长度时,会返回从start位置开始到末尾元素组成的ARRAY数组。
返回值说明
返回ARRAY类型。
使用示例
示例1:截取ARRAY数组
array(10, 20, 20, null, null, 30)从第1个位置开始,切片长度为3的元素。命令示例如下。--返回[10, 20, 20]。 select slice(array(10, 20, 20, null, null, 30), 1, 3);示例2:截取ARRAY数组
array(10, 20, 20, null, null, 30)从第-2个位置开始,切片长度为2的元素。命令示例如下。--返回[NULL, 30]。 select slice(array(10, 20, 20, null, null, 30), -2, 2);示例3:截取ARRAY数组
array(10, 20, 20, null, null, 30)从第3个位置开始,切片长度为10的元素。命令示例如下。--返回[20, NULL, NULL, 30]。 select slice(array(10, 20, 20, null, null, 30), 3, 10);示例4:截取ARRAY数组
array(10, 20, 20, null, null, 30)从第3个位置开始,切片长度为0的元素。命令示例如下。--返回[]。 select slice(array(10, 20, 20, null, null, 30), 3, 0);
相关函数
SLICE函数属于复杂类型函数,更多对复杂类型数据(例如ARRAY、MAP、STRUCT、JSON数据)的处理函数请参见复杂类型函数。
该文章对您有帮助吗?