카테고리:

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

ARRAY_SIZE

입력 배열의 크기를 반환합니다.

ARRAY_SIZE의 변형은 VARIANT 값을 입력으로 사용합니다. VARIANT 값에 배열이 포함되어 있는 경우, 배열의 크기가 반환됩니다. 그렇지 않은 경우, 값이 배열이 아니면 NULL이 반환됩니다.

구문

ARRAY_SIZE( <array> )

ARRAY_SIZE( <variant> )
Copy

반환

반환된 값의 데이터 타입은 INTEGER 입니다.

사용법 노트

  • ARRAY 값을 입력으로 사용하여 배열의 크기를 반환합니다(즉, 가장 큰 인덱스 + 1).

    배열이 스파스 배열인 경우, 이는 정의된 요소뿐만 아니라 정의되지 않은 요소도 크기에 포함됨을 의미합니다.

  • NULL 인자는 결과로서 NULL을 반환합니다.

다음은 간단한 예입니다.

SELECT ARRAY_SIZE(ARRAY_CONSTRUCT(1, 2, 3)) AS SIZE;
+------+
| SIZE |
|------|
|    3 |
+------+
Copy

다음은 약간 더 복잡한 예입니다. 이번에는 VARIANT 데이터 타입을 사용합니다.

CREATE OR replace TABLE colors (v variant);

INSERT INTO
   colors
   SELECT
      parse_json(column1) AS v
   FROM
   VALUES
     ('[{r:255,g:12,b:0},{r:0,g:255,b:0},{r:0,g:0,b:255}]'),
     ('[{r:255,g:128,b:0},{r:128,g:255,b:0},{r:0,g:255,b:128},{r:0,g:128,b:255},{r:128,g:0,b:255},{r:255,g:0,b:128}]')
    v;
Copy

VARIANT 열에 있는 각 배열의 크기를 검색합니다.

SELECT ARRAY_SIZE(v) from colors;
+---------------+
| ARRAY_SIZE(V) |
|---------------|
|             3 |
|             6 |
+---------------+
Copy

VARIANT 열에 있는 각 배열의 마지막 요소를 검색합니다.

SELECT GET(v, ARRAY_SIZE(v)-1) FROM colors;
+-------------------------+
| GET(V, ARRAY_SIZE(V)-1) |
|-------------------------|
| {                       |
|   "b": 255,             |
|   "g": 0,               |
|   "r": 0                |
| }                       |
| {                       |
|   "b": 128,             |
|   "g": 0,               |
|   "r": 255              |
| }                       |
+-------------------------+
Copy