ARRAY_INSERT
ARRAY_INSERT
ARRAY_INSERT() 함수는 소스 배열의 모든 요소와 새 요소를 모두 포함하는 배열을 반환해요.
본문
문법
ARRAY_INSERT( <array> , <pos> , <new_element> )
인자
array — 소스 배열이에요.
pos — 소스 배열의 (0부터 시작하는) 위치예요. 새 요소는 이 위치에 삽입돼요. 이 위치의 원래 요소(있는 경우)와 이후의 모든 요소(있는 경우)는 결과 배열에서 한 위치씩 오른쪽으로 이동해요 (즉, 위치 0에 삽입하는 것은 ARRAY_PREPEND를 사용하는 것과 같은 효과예요). 음수 위치는 배열의 뒤에서부터의 인덱스로 해석돼요 (예: -1은 배열의 마지막 요소 앞에 삽입됨).
new_element — 삽입할 요소예요. 새 요소는 pos 위치에 놓여요. 소스 배열의 다른 요소들의 상대적 순서는 보존돼요.
반환
반환 값의 데이터 타입은 ARRAY예요.
사용 노트
구조화 배열(structured array)을 함수에 전달하면 함수는 같은 타입의 구조화 배열을 반환해요.
array가 구조화 ARRAY라면new_element의 타입은 ARRAY의 타입으로 강제 변환(coercible) 가능해야 해요.pos의 절댓값이array의 요소 수를 초과하면, 새 요소와 소스 배열 요소 사이에 추가 빈 요소가 삽입돼요.- 배열에 요소를 추가(append)하거나 앞에 추가(prepend)하려면 ARRAY_APPEND 또는 ARRAY_PREPEND를 사용하는 게 좋아요.
예제
배열에 삽입하는 간단한 예제예요:
SELECT ARRAY_INSERT(ARRAY_CONSTRUCT(0,1,2,3),2,'hello');
+--------------------------------------------------+
| ARRAY_INSERT(ARRAY_CONSTRUCT(0,1,2,3),2,'HELLO') |
|--------------------------------------------------|
| [ |
| 0, |
| 1, |
| "hello", |
| 2, |
| 3 |
| ] |
+--------------------------------------------------+
배열의 기존 요소 수보다 큰 인덱스를 사용한 삽입이에요:
SELECT ARRAY_INSERT(ARRAY_CONSTRUCT(0,1,2,3),5,'hello');
+--------------------------------------------------+
| ARRAY_INSERT(ARRAY_CONSTRUCT(0,1,2,3),5,'HELLO') |
|--------------------------------------------------|
| [ |
| 0, |
| 1, |
| 2, |
| 3, |
| undefined, |
| "hello" |
| ] |
+--------------------------------------------------+
음수 인덱스를 사용한 삽입이에요:
SELECT ARRAY_INSERT(ARRAY_CONSTRUCT(0,1,2,3),-1,'hello');
+---------------------------------------------------+
| ARRAY_INSERT(ARRAY_CONSTRUCT(0,1,2,3),-1,'HELLO') |
|---------------------------------------------------|
| [ |
| 0, |
| 1, |
| 2, |
| "hello", |
| 3 |
| ] |
+---------------------------------------------------+