카테고리:

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

ARRAY_INSERT

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

구문

ARRAY_INSERT( <array> , <pos> , <new_element> )
Copy
참고 항목:

ARRAY_APPEND , ARRAY_PREPEND

인자

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                                              |
| ]                                                |
+--------------------------------------------------+
Copy

이는 배열의 기존 요소 수보다 큰 인덱스를 사용하는 삽입을 보여줍니다.

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"                                        |
| ]                                                |
+--------------------------------------------------+
Copy

이는 음수 인덱스를 사용하는 삽입을 보여줍니다.

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                                               |
| ]                                                 |
+---------------------------------------------------+
Copy