- 카테고리:
반정형 및 정형 데이터 함수 (배열/오브젝트)
ARRAY_SLICE¶
입력 배열 요소의 지정된 하위 세트에서 구성된 배열을 반환합니다.
구문¶
ARRAY_SLICE( <array> , <from> , <to> )
인자¶
array
결과 배열을 구성하기 위해 요소의 하위 세트가 사용되는 소스 배열입니다.
from
소스 배열의 위치입니다. 첫 번째 요소의 위치는
0
입니다.from
보다 작은 위치의 요소는 결과 배열에 포함되지 않습니다.to
소스 배열의 위치입니다.
to
과 같거나 큰 위치의 요소는 결과 배열에 포함되지 않습니다.
반환¶
이 함수는 ARRAY 형식의 값을 반환합니다.
입력 array
, from
또는 to
등 인자가 NULL 인 경우 NULL 을 반환합니다 .
사용법 노트¶
출력에는 매개 변수
to
로 지정한 것까지의(해당 요소는 제외) 요소를 포함합니다.from
또는to
가 음수인 경우, 배열의 시작이 아니라 배열의 끝을 기준으로 합니다. 예를 들어.-2
는 배열의 마지막 위치에서 두 번째 위치를 나타냅니다.from
및to
가 둘 다 배열의 상한을 벗어나거나 둘 다 배열의 하한을 벗어나면 결과는 빈 세트입니다.정형 배열 을 함수에 전달하면 함수는 동일한 유형의 정형 배열을 반환합니다.
이러한 규칙(예: 음수를 배열 끝의 인덱스로 해석하고, 조각이 마지막 to
인덱스까지이지만 해당 인덱스는 포함하지 않는다는 규칙)의 대부분은 Python과 같은 프로그래밍 언어의 배열 조각에 대한 규칙과 유사합니다.
이러한 각 규칙은 아래의 하나 이상의 예에 나와 있습니다.
예¶
이 예제에서는 ARRAY 상수 를 사용하여 배열을 구성합니다. 또는 ARRAY_CONSTRUCT 함수를 사용하여 배열을 구성할 수도 있습니다.
이 예제는 간단한 배열 슬라이스를 보여줍니다.
SELECT ARRAY_SLICE([0,1,2,3,4,5,6], 0, 2);
+------------------------------------+
| ARRAY_SLICE([0,1,2,3,4,5,6], 0, 2) |
|------------------------------------|
| [ |
| 0, |
| 1 |
| ] |
+------------------------------------+
이 예제에서는 ARRAY_SLICE 함수와 함께 ARRAY_SIZE 함수를 사용하여 배열을 마지막 인덱스까지 조각화합니다.
SELECT ARRAY_SLICE([0,1,2,3,4,5,6], 3, ARRAY_SIZE([0,1,2,3,4,5,6])) AS slice_to_last_index;
+---------------------+
| SLICE_TO_LAST_INDEX |
|---------------------|
| [ |
| 3, |
| 4, |
| 5, |
| 6 |
| ] |
+---------------------+
인덱스는 숫자여야 하지만 배열의 요소는 숫자가 아니어도 됩니다.
SELECT ARRAY_SLICE(['foo','snow','flake','bar'], 1, 3);
+-------------------------------------------------+
| ARRAY_SLICE(['FOO','SNOW','FLAKE','BAR'], 1, 3) |
|-------------------------------------------------|
| [ |
| "snow", |
| "flake" |
| ] |
+-------------------------------------------------+
이 예제는 NULL 을 입력 배열로 사용했을 때의 효과를 보여줍니다.
SELECT ARRAY_SLICE(NULL, 2, 3);
+-------------------------+
| ARRAY_SLICE(NULL, 2, 3) |
|-------------------------|
| NULL |
+-------------------------+
이 예제는 NULL 을 슬라이스 인덱스 중 하나로 사용했을 때의 효과를 보여줍니다.
SELECT ARRAY_SLICE([0,1,2,3,4,5,6], NULL, 2);
+---------------------------------------+
| ARRAY_SLICE([0,1,2,3,4,5,6], NULL, 2) |
|---------------------------------------|
| NULL |
+---------------------------------------+
이 예제는 음수를 인덱스로 사용할 때의 효과를 보여줍니다. 이 숫자는 배열의 끝에서 오프셋으로 해석됩니다.
SELECT ARRAY_SLICE([0,1,2,3,4,5,6], 0, -2);
+-------------------------------------+
| ARRAY_SLICE([0,1,2,3,4,5,6], 0, -2) |
|-------------------------------------|
| [ |
| 0, |
| 1, |
| 2, |
| 3, |
| 4 |
| ] |
+-------------------------------------+
이 예제는 두 인덱스가 모두 음수일 수 있음을 보여줍니다(즉, 둘 다 배열의 끝을 기준으로 할 수 있음).
SELECT ARRAY_SLICE([0,1,2,3,4,5,6], -5, -3);
+--------------------------------------+
| ARRAY_SLICE([0,1,2,3,4,5,6], -5, -3) |
|--------------------------------------|
| [ |
| 2, |
| 3 |
| ] |
+--------------------------------------+
이 예에서 두 인덱스는 모두 배열의 끝을 벗어납니다.
SELECT ARRAY_SLICE([0,1,2,3,4,5,6], 10, 12);
+--------------------------------------+
| ARRAY_SLICE([0,1,2,3,4,5,6], 10, 12) |
|--------------------------------------|
| [] |
+--------------------------------------+
이 예에서 두 인덱스는 모두 배열의 시작 앞에 있습니다.
SELECT ARRAY_SLICE([0,1,2,3,4,5,6], -10, -12);
+----------------------------------------+
| ARRAY_SLICE([0,1,2,3,4,5,6], -10, -12) |
|----------------------------------------|
| [] |
+----------------------------------------+