카테고리:

반정형 및 정형 데이터 함수 (배열/오브젝트)

ARRAY_APPEND

원본 배열의 모든 요소뿐 아니라 새 요소도 포함한 배열을 반환합니다. 새 요소는 배열의 끝에 위치합니다.

참고 항목:

ARRAY_INSERT , ARRAY_PREPEND

구문

ARRAY_APPEND( <array> , <new_element> )
Copy

인자

array

소스 배열입니다.

new_element

추가할 요소입니다. 요소 유형은 배열 유형에 따라 다릅니다.

  • array반정형 데이터 배열 인 경우 요소는 거의 모든 데이터 타입이 될 수 있습니다. 데이터 타입은 배열에 있는 기존 요소의 데이터 타입과 다를 수 있습니다.

  • array정형 배열 인 경우 새 요소의 유형은 배열의 유형에 강제 변환 가능 해야 합니다.

반환

반환된 값의 데이터 타입은 ARRAY입니다.

정형 배열 을 함수에 전달하면 함수는 동일한 유형의 정형 배열을 반환합니다.

소스 배열이 NULL 인 경우 함수는 NULL 을 반환합니다.

이 예제에서는 ARRAY 열이 있는 다음 테이블을 사용합니다.

CREATE OR REPLACE TABLE array_append_examples (array_column ARRAY);

INSERT INTO array_append_examples (array_column)
  SELECT ARRAY_CONSTRUCT(1, 2, 3);

SELECT * FROM array_append_examples;
Copy
+--------------+
| ARRAY_COLUMN |
|--------------|
| [            |
|   1,         |
|   2,         |
|   3          |
| ]            |
+--------------+

배열에 같은 유형의 요소를 추가합니다.

UPDATE array_append_examples
  SET array_column = ARRAY_APPEND(array_column, 4);
Copy

테이블을 쿼리하여 배열에 추가된 새 요소를 확인합니다.

SELECT * FROM array_append_examples;
Copy
+--------------+
| ARRAY_COLUMN |
|--------------|
| [            |
|   1,         |
|   2,         |
|   3,         |
|   4          |
| ]            |
+--------------+

배열에 다른 유형의 요소를 추가합니다.

UPDATE array_append_examples
  SET array_column = ARRAY_APPEND(array_column, 'five');
Copy

테이블을 쿼리하여 배열에 추가된 새 요소와 배열에 있는 각 요소의 데이터 타입을 확인합니다.

SELECT array_column,
       ARRAY_CONSTRUCT(
        TYPEOF(array_column[0]),
        TYPEOF(array_column[1]),
        TYPEOF(array_column[2]),
        TYPEOF(array_column[3]),
        TYPEOF(array_column[4])) AS type
  FROM array_append_examples;
Copy
+--------------+--------------+
| ARRAY_COLUMN | TYPE         |
|--------------+--------------|
| [            | [            |
|   1,         |   "INTEGER", |
|   2,         |   "INTEGER", |
|   3,         |   "INTEGER", |
|   4,         |   "INTEGER", |
|   "five"     |   "VARCHAR"  |
| ]            | ]            |
+--------------+--------------+