Личный кабинет
Укажите e-mail, на который будет выслан код восстановления пароля.
На указанный вами адрес e-mail был выслан код подтверждения аккаунта. Введите полученный код для продолжения:
Введите новый пароль два раза:
В Таблице 9.48 показаны операторы, предназначенные для работы с массивами.
Таблица 9.48. Операторы для работы с массивами
=
ARRAY[1.1,2.1,3.1]::int[] = ARRAY[1,2,3]
t
<>
ARRAY[1,2,3] <> ARRAY[1,2,4]
<
ARRAY[1,2,3] < ARRAY[1,2,4]
>
ARRAY[1,4,3] > ARRAY[1,2,4]
<=
ARRAY[1,2,3] <= ARRAY[1,2,3]
>=
ARRAY[1,4,3] >= ARRAY[1,4,3]
@>
ARRAY[1,4,3] @> ARRAY[3,1,3]
<@
ARRAY[2,2,7] <@ ARRAY[1,7,4,2,6]
&&
ARRAY[1,4,3] && ARRAY[2,1]
||
ARRAY[1,2,3] || ARRAY[4,5,6]
{1,2,3,4,5,6}
ARRAY[1,2,3] || ARRAY[[4,5,6], [7,8,9]]
{{1,2,3},{4,5,6},{7,8,9}}
3 || ARRAY[4,5,6]
{3,4,5,6}
ARRAY[4,5,6] || 7
{4,5,6,7}
Операторы упорядочивания массивов (<, >= и т. д.) сравнивают содержимое массивов по элементам, используя при этом функцию сравнения для B-дерева, определённую для типа данного элемента по умолчанию, и сортируют их по первому различию. В многомерных массивах элементы просматриваются по строкам (индекс последней размерности меняется в первую очередь). Если содержимое двух массивов совпадает, а размерности различаются, результат их сравнения будет определяться первым отличием в размерностях. (В PostgreSQL до версии 8.2 поведение было другим: два массива с одинаковым содержимом считались одинаковыми, даже если число их размерностей и границы индексов различались.)
Операторы вложенности массивов (<@ and @>) считают один массив вложенным в другой, если каждый элемент первого встречается во втором. Повторяющиеся элементы рассматриваются на общих основаниях, поэтому массивы ARRAY[1] и ARRAY[1,1] считаются вложенным друг в друга.
ARRAY[1]
ARRAY[1,1]
Подробнее поведение операторов с массивами описано в Разделе 8.15. За дополнительными сведениями об операторах, поддерживающих индексы, обратитесь к Разделу 11.2.
В Таблице 9.49 перечислены функции, предназначенные для работы с массивами. Дополнительная информация о них и примеры использования приведены в Разделе 8.15.
Таблица 9.49. Функции для работы с массивами
array_append(anyarray, anyelement)
array_append
anyarray
anyelement
array_append(ARRAY[1,2], 3)
{1,2,3}
array_cat(anyarray, anyarray)
array_cat
array_cat(ARRAY[1,2,3], ARRAY[4,5])
{1,2,3,4,5}
array_ndims(anyarray)
array_ndims
int
array_ndims(ARRAY[[1,2,3], [4,5,6]])
2
array_dims(anyarray)
array_dims
text
array_dims(ARRAY[[1,2,3], [4,5,6]])
[1:2][1:3]
array_fill(anyelement, int[] [, int[]])
array_fill
int[]
array_fill(7, ARRAY[3], ARRAY[2])
[2:4]={7,7,7}
array_length(anyarray, int)
array_length
array_length(array[1,2,3], 1)
3
array_lower(anyarray, int)
array_lower
array_lower('[0:2]={1,2,3}'::int[], 1)
0
array_position(anyarray, anyelement [, int])
array_position
array_position(ARRAY['sun','mon','tue','wed','thu','fri','sat'], 'mon')
array_positions(anyarray, anyelement)
array_positions
array_positions(ARRAY['A','A','B','A'], 'A')
{1,2,4}
array_prepend(anyelement, anyarray)
array_prepend
array_prepend(1, ARRAY[2,3])
array_remove(anyarray, anyelement)
array_remove
array_remove(ARRAY[1,2,3,2], 2)
{1,3}
array_replace(anyarray, anyelement, anyelement)
array_replace
array_replace(ARRAY[1,2,5,4], 5, 3)
{1,2,3,4}
array_to_string(anyarray, text [, text])
array_to_string
array_to_string(ARRAY[1, 2, 3, NULL, 5], ',', '*')
1,2,3,*,5
array_upper(anyarray, int)
array_upper
array_upper(ARRAY[1,8,3,7], 1)
4
cardinality(anyarray)
cardinality
cardinality(ARRAY[[1,2],[3,4]])
string_to_array(text, text [, text])
string_to_array
text[]
string_to_array('xx~^~yy~^~zz', '~^~', 'yy')
{xx,NULL,zz}
unnest(anyarray)
unnest
setof anyelement
unnest(ARRAY[1,2])
1 2
unnest(anyarray, anyarray [, ...])
setof anyelement, anyelement [, ...]
unnest(ARRAY[1,2],ARRAY['foo','bar','baz'])
1 foo 2 bar NULL baz
В функциях array_position и array_positions каждый элемент массива сравнивается с искомым значением по принципу IS NOT DISTINCT FROM.
IS NOT DISTINCT FROM
Функция array_position возвращает NULL, если искомое значение не находится.
NULL
Функция array_positions возвращает NULL, только если в качестве массива передаётся NULL; если же в массиве не находится значение, она возвращает пустой массив.
Если для функции string_to_array в качестве разделителя задан NULL, каждый символ входной строки станет отдельным элементом в полученном массиве. Если разделитель пустая строка, строка будет возвращена целиком в массиве из одного элемента. В противном случае входная строка разбивается по вхождениям подстроки, указанной в качестве разделителя.
Если для функции string_to_array параметр замены значения NULL опущен или равен NULL, никакие подстроки во входных данных не будут заменяться на NULL. Если же параметр замены NULL опущен или равен NULL для функции array_to_string, все значения NULL просто пропускаются и никак не представляются в выходной строке.
В поведении string_to_array по сравнению с PostgreSQL версий до 9.1 произошли два изменения. Во-первых, эта функция возвращает пустой массив (содержащий 0 элементов), а не NULL, когда входная строка имеет нулевую длину. Во-вторых, если в качестве разделителя задан NULL, эта функция разбивает строку по символам, а не просто возвращает NULL, как было раньше.
Вы также можете узнать об агрегатной функции, работающей с массивами, array_agg в Разделе 9.20.
array_agg
Соглашаюсь с условиями обработки персональных данных