ARRAY_APPEND

ARRAY_APPEND (배열 끝에 요소 추가)

원본 배열의 모든 요소와 새 요소를 모두 담은 배열을 반환해요. 새 요소는 배열의 끝에 위치해요.

출처: Snowflake SQL Reference - 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"    |
| ]           | ]            |
+--------------+--------------+

더 알아보기