ARRAY_APPEND
ARRAY_APPEND (배열 끝에 요소 추가)
원본 배열의 모든 요소와 새 요소를 모두 담은 배열을 반환해요. 새 요소는 배열의 끝에 위치해요.
본문
참고: ARRAY_INSERT, ARRAY_PREPEND
구문
ARRAY_APPEND( <array> , <new_element> )
인자
array
원본 배열이에요.
new_element
추가할 요소예요. 요소의 타입은 배열의 타입에 따라 달라져요.
-
array가 반구조적(semi-structured) 배열이면 요소는 거의 모든 데이터 타입일 수 있어요. 데이터 타입은 배열에 이미 있는 요소의 데이터 타입과 달라도 돼요. -
array가 구조적(structured) 배열이면 새 요소의 타입은 배열의 타입으로 변환(coercible) 가능해야 해요.
반환 값
반환 값의 데이터 타입은 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;
+--------------+
| ARRAY_COLUMN |
|--------------|
| [ |
| 1, |
| 2, |
| 3 |
| ] |
+--------------+
배열에 같은 타입의 요소를 추가해요.
UPDATE array_append_examples
SET array_column = ARRAY_APPEND(array_column, 4);
테이블을 조회해 배열에 추가된 새 요소를 확인해요.
SELECT * FROM array_append_examples;
+--------------+
| ARRAY_COLUMN |
|--------------|
| [ |
| 1, |
| 2, |
| 3, |
| 4 |
| ] |
+--------------+
배열에 다른 타입의 요소를 추가해요.
UPDATE array_append_examples
SET array_column = ARRAY_APPEND(array_column, 'five');
테이블을 조회해 배열에 추가된 새 요소와 배열 내 각 요소의 데이터 타입을 확인해요.
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;
+--------------+--------------+
| ARRAY_COLUMN | TYPE |
|--------------+--------------|
| [ | [ |
| 1, | "INTEGER", |
| 2, | "INTEGER", |
| 3, | "INTEGER", |
| 4, | "INTEGER", |
| "five" | "VARCHAR" |
| ] | ] |
+--------------+--------------+