ARRAY_SLICE(NoSQL 查询)

适用范围: NoSQL

返回使用指定的索引和长度的数组表达式的子集。

语法

ARRAY_SLICE(<array_expr>, <numeric_expr_1> [, <numeric_expr_2>])  

参数

说明
array_expr 一个数组表达式。
numeric_expr_1 指示子集的数组从哪里开始索引的数值表达式。 (可选)负值可用于指定相对于数组最后一个元素的起始索引。
numeric_expr_2(可选) 一个可选的数值表达式,用于指示结果数组中元素的最大长度。

返回类型

返回一个数组表达式。

示例

以下示例展示了如何使用此函数获取数组的不同切片。

SELECT VALUE {
    sliceFromStart: ARRAY_SLICE([70, 86, 92, 99, 85, 90, 82], 0),
    sliceFromSecond: ARRAY_SLICE([70, 86, 92, 99, 85, 90, 82], 1),
    sliceFromLast: ARRAY_SLICE([70, 86, 92, 99, 85, 90, 82], -1),
    sliceFromSecondToLast: ARRAY_SLICE([70, 86, 92, 99, 85, 90, 82], -2),
    sliceThreeFromStart: ARRAY_SLICE([70, 86, 92, 99, 85, 90, 82], 0, 3),
    sliceTwelveFromStart: ARRAY_SLICE([70, 86, 92, 99, 85, 90, 82], 0, 12),
    sliceFiveFromThird: ARRAY_SLICE([70, 86, 92, 99, 85, 90, 82], 3, 5),
    sliceOneFromSecondToLast: ARRAY_SLICE([70, 86, 92, 99, 85, 90, 82], -2, 1)
}
[
  {
    "sliceFromStart": [70, 86, 92, 99, 85, 90, 82],
    "sliceFromSecond": [86, 92, 99, 85, 90, 82],
    "sliceFromLast": [82],
    "sliceFromSecondToLast": [90, 82],
    "sliceThreeFromStart": [70, 86, 92],
    "sliceTwelveFromStart": [70, 86, 92, 99, 85, 90, 82],
    "sliceFiveFromThird": [99, 85, 90, 82],
    "sliceOneFromSecondToLast": [90]
  }
]

注解

  • 此系统函数不使用索引。