Поделиться через


ARRAY_SLICE (запрос NoSQL)

ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL

Возвращает подмножество выражения массива с помощью указанного индекса и длины.

Синтаксис

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

Аргументы

Description
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]
  }
]

Замечания

  • Эта системная функция не использует индекс.