Последнее обновление
Функция TRIM_ARRAY
trim_array
Описание
Удаляет <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