该 ARRAY_SLICE 函数使用指定的索引和长度返回数组表达式的子集。
Syntax
ARRAY_SLICE(<array_expr>, <numeric_expr_1> [, <numeric_expr_2>])
Arguments
| Description | |
|---|---|
array_expr |
数组表达式。 |
numeric_expr_1 |
一个数值表达式,指示要在其中开始子集数组的索引。 (可选)负值可用于指定相对于数组的最后一个元素的起始索引。 |
numeric_expr_2 |
一个可选的数值表达式,指示生成的数组中元素的最大长度。 |
返回类型
返回数组表达式。
例子
本部分包含有关如何使用此查询语言构造的示例。
数组切片示例
在此示例中,函数 ARRAY_SLICE 用于获取数组的子集。
SELECT VALUE {
sliceFromStart: ARRAY_SLICE(["Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf"], 0),
sliceFromSecond: ARRAY_SLICE(["Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf"], 1),
sliceFromLast: ARRAY_SLICE(["Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf"], -1),
sliceFromSecondToLast: ARRAY_SLICE(["Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf"], -2),
sliceThreeFromStart: ARRAY_SLICE(["Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf"], 0, 3),
sliceTwelveFromStart: ARRAY_SLICE(["Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf"], 0, 12),
sliceFiveFromThird: ARRAY_SLICE(["Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf"], 3, 5),
sliceOneFromSecondToLast: ARRAY_SLICE(["Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf"], -2, 1)
}
[
{
"sliceFromStart": [
"Alpha",
"Bravo",
"Charlie",
"Delta",
"Echo",
"Foxtrot",
"Golf"
],
"sliceFromSecond": [
"Bravo",
"Charlie",
"Delta",
"Echo",
"Foxtrot",
"Golf"
],
"sliceFromLast": [
"Golf"
],
"sliceFromSecondToLast": [
"Foxtrot",
"Golf"
],
"sliceThreeFromStart": [
"Alpha",
"Bravo",
"Charlie"
],
"sliceTwelveFromStart": [
"Alpha",
"Bravo",
"Charlie",
"Delta",
"Echo",
"Foxtrot",
"Golf"
],
"sliceFiveFromThird": [
"Delta",
"Echo",
"Foxtrot",
"Golf"
],
"sliceOneFromSecondToLast": [
"Foxtrot"
]
}
]
注解
- 此函数不使用索引。