9.19. 배열 기능 및 연산자

표 9.51배열 유형에 사용 가능한 특수 연산자가 표시됩니다. 그 외에도에 표시된 일반적인 비교 연산자표 9.1배열에 사용할 수 있습니다. 비교 연산자는 요소 데이터 유형의 기본 B- 트리 비교 함수를 사용하여 배열 컨텐츠 요소 별 요소를 비교하고 첫 번째 차이를 기준으로 정렬합니다. 다차원 배열에서 요소는 행-대기 순서로 방문됩니다 (마지막 첨자는 가장 빠르게 다릅니다). 두 배열의 내용이 같지만 차원이 다르면 차원 정보의 첫 번째 차이는 정렬 순서를 결정합니다. (이것은 버전의 변화입니다PostgreSQL8.2 이전 이전 버전은 크기 또는 첨자 범위의 수가 다르더라도 같은 내용을 가진 두 개의 배열이 동일하다고 주장합니다.)

표 9.51. 배열 연산자

운영자

설명

예제

AnyArray @ AnyArray부울

첫 번째 배열에는 두 번째 배열이 포함되어 있습니까? (복제물은 특별히 처리되지 않으므로배열 [1]and배열 [1,1]각각 다른 사람을 포함하는 것으로 간주됩니다.)

배열 [1,4,3] @ 배열 [3,1,3]t

AnyArray <@ AnyArray부울

첫 번째 배열은 두 번째 배열이 포함되어 있습니까?

배열 [2,2,7] <@ Array [1,7,4,2,6]t

AnyArray && AnyArray부울

배열이 겹치는 것, 즉 공통 요소가 있습니까?

배열 [1,4,3] && 어레이 [2,1]T

AnyArray || AnyArrayAnyArray

두 배열을 연결합니다. 널 또는 빈 배열을 연결하는 것은 NO-OP입니다. 그렇지 않으면 배열의 차원 수는 (첫 번째 예에 의해 설명 된대로)와 동일한 수의 치수를 가져야하거나 치수 수가 하나 (두 번째로 설명 된대로)의 차이가 있어야합니다..

배열 [1,2,3] || 배열 [4,5,6,7]1,2,3,4,5,6,7

배열 [1,2,3] || 배열 [[4,5,6], [7,8,9]]1,2,3, 4,5,6, 7,8,9

Anylement || AnyArrayAnyArray

배열의 전면에 요소를 연결합니다 (비어 있거나 1 차원이어야 함)

3 || 배열 [4,5,6]3,4,5,6

AnyArray || AnylementAnyArray

배열 끝에 요소를 연결합니다 (비어 있거나 1 차원이어야 함)

배열 [4,5,6] || 74,5,6,7


참조PostgreSQL : 문서 : 13 : 8.15. 범퍼카 토토배열 연산자 동작에 대한 자세한 내용은. 보다배트맨 토토 PostgreSQL : 문서 : 13 : 11.2. 색인 유형인덱스 작업을 지원하는 운영자에 대한 자세한 내용은

표 9.52배열 유형과 함께 사용할 수있는 기능을 보여줍니다. 보다PostgreSQL : 문서 : 13 : 8.15. 범퍼카 토토이러한 기능의 사용에 대한 자세한 정보 및 예.

표 9.52. 배열 기능

기능

설명

예제

array_append(AnyArray, Anylement) →AnyArray

배열 끝에 요소를 추가합니다 (AnyArray || Anylement운영자).

array_append (Array [1,2], 3)1,2,3

array_cat(AnyArray, AnyArray) →AnyArray

두 배열을 연결합니다 (AnyArray || AnyArray연산자).

array_cat (배열 [1,2,3], 배열 [4,5])1,2,3,4,5

array_dims(AnyArray) →텍스트

배열의 치수의 텍스트 표현을 반환합니다.

array_dims (Array [[1,2,3], [4,5,6])[1 : 2] [1 : 3]

array_fill(Anylement, 정수 [][, 정수 []]) →AnyArray

주어진 값의 사본으로 채워진 배열을 반환하며, 두 번째 인수에 의해 지정된 길이의 치수가 있습니다. 선택적 세 번째 인수는 각 차원에 대한 낮은 바운드 값을 제공합니다 (모두 기본값1).

array_fill (11, array [2,3])11,11,11, 11,11,11

array_fill (7, array [3], array [2])[2 : 4] = 7,7,7

array_le메이저 토토 사이트th(AnyArray, 20116_20125) →정수

요청 된 배열 치수의 길이를 반환합니다. (비어 있거나 누락 된 배열 치수에 대해 0 대신 널을 생성합니다.)

array_le메이저 토토 사이트th (배열 [1,2,3], 1)3

array_le메이저 토토 사이트th (array [] :: int [], 1)NULL

array_le메이저 토토 사이트th (Array [ 'text'], 2)null

Array_Lower(AnyArray, 정수) →정수

요청 된 배열 치수의 하한을 반환합니다.

array_lower ( '[0 : 2] = 1,2,3':: 정수 [], 1)0

array_ndims(AnyArray) →Integer

배열의 치수 수를 반환합니다.

array_ndims (Array [[1,2,3], [4,5,6])2

array_position(AnyArray, Anylement[, 정수]) →Integer

배열에서 두 번째 인수의 첫 번째 발생 위시를 반환합니다.NULL존재하지 않는 경우. 세 번째 인수가 주어지면 검색은 해당 첨자에서 시작됩니다. 배열은 1 차원이어야합니다. 비교는를 사용하여 수행됩니다.|의미론이므로 검색 할 수 있습니다NULL.

array_position (array [ 'sun', 'mon', 'tue', 'sw', 'thu', 'fri', 'sat', 'mon')2

array_positions(AnyArray, Anylement) →정수 []

첫 번째 인수로 주어진 배열에서 두 번째 인수의 모든 발생의 모든 위시 배열을 반환합니다. 배열은 1 차원이어야합니다. 비교는를 사용하여 수행됩니다.의미론이므로 검색 할 수 있습니다NULL. NULL배열이있는 경우에만 반환됩니다NULL; 배열에서 값이 발견되지 않으면 빈 배열이 반환됩니다.

array_positions (array [ 'a', 'a', 'b', 'a', 'a')1,2,4

array_prepend(Anylement, AnyArray) →AnyArray

배열의 시작 부분에 요소를 전제합니다 (Anylement || AnyArray운영자).

array_prepend (1, array [2,3])1,2,3

array_remove(AnyArray, Anylement) →AnyArray

배열에서 주어진 값과 동일한 모든 요소를 제거합니다. 배열은 1 차원이어야합니다. 비교는를 사용하여 수행됩니다.의미론이므로 제거 할 수 있습니다NULLs.

array_remove (Array [1,2,3,2], 2)1,3

array_replace(AnyArray, Anylement, Anylement) →AnyArray

두 번째 인수와 동일한 각 배열 요소를 세 번째 인수와 대체합니다.

array_replace (Array [1,2,5,4], 5, 3)1,2,3,4

array_to_stri메이저 토토 사이트(배열 AnyArray, Delimiter 텍스트[, null_string 텍스트]) →텍스트

각 배열 요소를 텍스트 표현으로 변환하고에 의해 분리 된 것들을 연결합니다.Delimiter문자열. 만약에null_string제공되고 있지 않으며NULL,NULL배열 항목은 해당 문자열로 표시됩니다. 그렇지 않으면 생략됩니다.

array_to_stri메이저 토토 사이트 (array [1, 2, 3, null, 5], ',', '*')1,2,3,*,5

array_upper(AnyArray, Integer) →Integer

요청 된 배열 치수의 상한을 반환합니다.

array_upper (배열 [1,8,3,7], 1)4

추기경(AnyArray) →정수

28142_28222

추기경 (배열 [[1,2], [3,4]])4

Stri메이저 토토 사이트_to_array(Stri메이저 토토 사이트 텍스트, Delimiter 텍스트[, null_string 텍스트]) →텍스트 []

나그팅Stri메이저 토토 사이트발생시Delimiter그리고 나머지 데이터를 a에 형성합니다.텍스트배열. 만약에DelimiterisNULL,의 각 문자Stri메이저 토토 사이트배열에서 별도의 요소가됩니다. 만약에Delimiter빈 문자열입니다.Stri메이저 토토 사이트는 단일 필드로 취급됩니다. 만약에null_string제공되었고NULL, 해당 문자열이 일치하는 필드NULL항목.

Stri메이저 토토 사이트_to_array ( 'xx ~~ yy ~~ zz', '~~', 'yy')xx, null, zz

Unnest(AnyArray) →모든 요소 설정

배열을 행 세트로 확장합니다. 배열의 요소는 저장 순서로 읽습니다.

Unnest (Array [1,2])

 1
 2

Unnest (어레이 [[ 'foo', 'bar'], [ 'baz', 'quux'])

foo
 술집
 바즈
 Quux

Unnest(AnyArray, AnyArray[, ...]) →anylement, anylement [, ...] 설정

여러 배열 (아마도 다른 데이터 유형)을 행 세트로 확장합니다. 배열이 모두 같은 길이가 아니라면 더 짧은 배열은로 채워집니다.NULLs. 이 양식은 쿼리의 절에서만 허용됩니다. 보다섹션 7.2.1.4.

select * from Unnest (배열 [1,2], 배열 [ 'foo', 'bar', 'baz']) as x (a, b)

a |  비
---+-----
 1 | foo
 2 | 술집
   | BAZ

Note

행동에는 두 가지 차이가 있습니다Stri메이저 토토 사이트_to_arrayPre-9.1 버전의에서PostgreSQL. 첫째, 비어있는 (제로 요소) 배열이 아닌을 반환합니다.NULL입력 문자열이 0 인 경우. 둘째, 구분자 문자열이 인 경우NULL, 함수는 입력을 반환하지 않고 개별 문자로 나눕니다NULL이전과 같이.

참조PostgreSQL : 문서 : 13 : 9.21. 롤 토토 기능집계 함수 정보array_agg배열과 함께 사용하려면

수정 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면