입력 배열 요소의 지정된 하위 세트에서 구성된 배열을 반환합니다.
예
이 예제에서는 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) |
|----------------------------------------|
| [] |
+----------------------------------------+