- 카테고리:
반정형 및 정형 데이터 함수 (배열/오브젝트)
ARRAY_INSERT¶
원본 배열의 모든 요소뿐 아니라 새 요소도 포함한 배열을 반환합니다.
구문¶
ARRAY_INSERT( <array> , <pos> , <new_element> )
- 참고 항목:
인자¶
array
소스 배열입니다.
pos
소스 배열의 위치(0부터 시작)입니다. 새 요소가 이 위치에 삽입됩니다. 이 위치의 원래 요소(있는 경우) 및 모든 후속 요소(있는 경우)는 결과 배열에서 오른쪽으로 한 위치만큼 이동합니다(즉, 위치 0에 삽입하면 ARRAY_PREPEND 를 사용하는 것과 동일한 효과가 있음).
음수 위치는 배열 뒤에서 인덱스로 해석됩니다(예:
-1
의 경우, 배열의 마지막 요소 앞에 삽입).new_element
삽입할 요소입니다. 새 요소는
pos
위치에 있습니다. 소스 배열에서 다른 요소의 상대적 순서는 유지됩니다.
반환¶
반환된 값의 데이터 타입은 ARRAY
입니다.
사용법 노트¶
정형 ARRAY 를 함수에 전달하면 함수는 동일한 유형의 정형 ARRAY를 반환합니다.
array
가 정형 ARRAY 인 경우 새 요소의 유형은 ARRAY의 유형으로 강제 변환 가능 해야 합니다.pos
의 절댓값이array
의 요소 수를 초과하는 경우, 새 요소와 소스 배열의 요소 사이에 빈 요소가 추가로 삽입됩니다.요소를 배열에 추가하거나 배열 앞에 추가하려면 대신 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 |
| ] |
+---------------------------------------------------+