跳到主要内容

ARRAY_SLICE

描述

指定起始位置和长度,从一个数组中提取一部分元素,形成一个新的子数组

语法

ARRAY_SLICE(<arr>, <off>, <len>)

参数

参数说明
<arr>对应数组
<off>起始位置,如果off是正数,则表示从左侧开始的偏移量,如果off是负数,则表示从右侧开始的偏移量,当指定的off不在数组的实际范围内,返回空数组
<len>提前长度,如果len是负数,则表示长度为0

返回值

返回一个子数组,包含所有从指定位置开始的指定长度的元素,如果输入参数为NULL,则返回NULL

举例

SELECT ARRAY_SLICE([1, 2, 3, 6],2,3),ARRAY_SLICE([1, 4, 3, 5, NULL],-2,1),ARRAY_SLICE([1, 3, 5],0);
+---------------------------------+----------------------------------------+---------------------------+
| array_slice([1, 2, 3, 6], 2, 3) | array_slice([1, 4, 3, 5, NULL], -2, 1) | array_slice([1, 3, 5], 0) |
+---------------------------------+----------------------------------------+---------------------------+
| [2, 3, 6] | [5] | [] |
+---------------------------------+----------------------------------------+---------------------------+