9.19. Функции и операторы массивов#
9.19. Функции и операторы массивов #
Таблица 9.53 показывает специализированные операторы, доступные для массивных типов. Кроме того, для массивов доступны обычные операторы сравнения, показанные в Таблица 9.1. Операторы сравнения сравнивают содержимое массивов элемент за элементом, используя функцию сравнения B-дерева по умолчанию для типа данных элемента и сортируются на основе первого отличия. В многомерных массивах элементы посещаются в порядке построчного обхода (последний индекс изменяется наиболее быстро). Если содержимое двух массивов равно, но размерность различается, первое отличие в информации о размерности определяет порядок сортировки.
Таблица 9.53. Операторы массивов
Оператор Описание Пример(ы) |
---|
Содержит ли первый массив второй, то есть, каждый элемент, появляющийся во втором массиве, равен некоторому элементу первого массива?
(Дубликаты не обрабатываются особым образом,
таким образом,
|
Содержит ли первый массив второй?
|
Перекрываются ли массивы, то есть, имеют ли они общие элементы?
|
Сцепляет два массива. Сцепление пустого или нулевого массива не выполняется; в противном случае массивы должны иметь одинаковое количество измерений (как показано на первом примере) или отличаться на одно измерение (как показано на втором примере). Если массивы имеют разные типы элементов, они будут приведены к общему типу (см. Раздел 10.5).
|
Добавляет элемент в начало массива (который должен быть пустым или одномерным).
|
Добавляет элемент в конец массива (который должен быть пустым или одномерным).
|
См. Раздел 8.15 для получения дополнительной информации о поведении оператора массива. См. Раздел 11.2 для получения дополнительной информации о том, какие операторы поддерживают индексированные операции.
Таблица 9.54 показывает функции, доступные для использования с типами массивов. См. Раздел 8.15 для получения дополнительной информации и примеров использования этих функций.
Таблица 9.54. Функции массивов
Функция Описание Пример(ы) |
---|
Добавляет элемент в конец массива (то же самое, что и оператор
|
Конкатенирует два массива (то же самое, что и оператор
|
Возвращает текстовое представление размерностей массива.
|
Возвращает массив, заполненный копиями заданного значения, имеющими размеры, указанные во втором аргументе. Дополнительный третий аргумент предоставляет значения нижних границ для каждого измерения (которые по умолчанию равны
|
Возвращает длину запрошенного измерения массива. (Вместо 0 для пустых или отсутствующих измерений массива возвращает NULL).
|
Возвращает нижнюю границу запрошенного измерения массива.
|
Возвращает количество измерений массива.
|
Возвращает индекс первого вхождения в массиве второго аргумента или
|
Возвращает массив индексов всех вхождений второго аргумента в массиве, заданном первым аргументом.
Массив должен быть одномерным.
Сравнения выполняются с использованием семантики
|
Добавляет элемент в начало массива (то же самое, что и оператор
|
Удаляет все элементы, равные заданному значению, из массива.
Массив должен быть одномерным.
Сравнения выполняются с использованием семантики
|
Заменяет каждый элемент массива, равный второму аргументу, третьим аргументом.
|
Возвращает массив из
|
Случайным образом перемешивает первое измерение массива.
|
Преобразует каждый элемент массива в его текстовое представление и объединяет их, разделяя строкой
|
Возвращает верхнюю границу запрошенного измерения массива.
|
Возвращает общее количество элементов в массиве или 0, если массив пуст.
|
Обрезает массив, удаляя последние
|
Расширяет массив в набор строк. Элементы массива считываются в порядке хранения.
1 2
foo bar baz quux
|
Расширяет несколько массивов (возможно, разных типов данных) в набор строк. Если массивы имеют разную длину, то более короткие заполняются значениями
a | b ---+----- 1 | foo 2 | bar | baz
|
См. также Раздел 9.21 по агрегатной функции array_agg
используемой с массивами.