Перейти к содержимому
Последнее обновление

Функция TRIM_ARRAY

trim_array​

SinceVersion dev

Описание​

Удаляет <size> элементов с конца массива <arr>, сохраняя порядок оставшихся элементов.

Синтаксис​

TRIM_ARRAY(<arr>, <size>)

Параметры​

ПараметрОписание
<arr>Входной массив ARRAY<T>. T может быть числовым, логическим, строковым типом, типом даты/времени, типом IP-адреса или сложным типом.
<size>Неотрицательное значение BIGINT, задающее количество элементов, которые нужно удалить с конца массива. Оно не может превышать количество элементов в <arr>.

Возвращаемое значение​

Возвращает массив ARRAY<T>, содержащий первые cardinality(<arr>) - <size> элементов массива <arr>.

  • Если <size> равен 0, возвращает исходный массив без изменений.
  • Если <size> равен количеству элементов в массиве, возвращает пустой массив.
  • Если любой из аргументов равен NULL, возвращает NULL.
  • Элементы NULL внутри массива сохраняются.
  • Если <size> отрицателен или превышает количество элементов в массиве, возвращает ошибку.

Примеры​

Удаление двух элементов с конца массива:

SELECT trim_array([1, 2, 3, 4], 2);
[1, 2]

При нулевом размере массив остаётся без изменений:

SELECT trim_array(['a', 'b', 'c'], 0);
["a", "b", "c"]

Удаление всех элементов:

SELECT trim_array([1, 2, 3], 3);
[]

Поддерживаются элементы NULL и вложенные массивы:

SELECT trim_array([[1, NULL], [2, 3], [4, 5]], 1);
[[1, null], [2, 3]]

Если аргумент равен NULL, возвращается NULL:

SELECT trim_array(CAST(NULL AS ARRAY<INT>), 0);
NULL

Если размер превышает количество элементов в массиве, возникает ошибка:

SELECT trim_array([1, 2, 3], 4);
ERROR 1105 (HY000): size must not exceed array cardinality 3: 4

Ключевые слова​

ARRAY, TRIM, TRIM_ARRAY