- 类别:
半结构化和结构化数据函数 (数组/对象)
ARRAY_SIZE¶
返回输入数组的大小。
ARRAY_SIZE 变体将 VARIANT 值作为输入。如果 VARIANT 值包含数组,则返回数组的大小;否则,如果该值不是数组,则返回 NULL。
语法¶
ARRAY_SIZE( <array> )
ARRAY_SIZE( <variant> )
返回¶
返回值的数据类型是 INTEGER
。
使用说明¶
将一个 ARRAY 值作为输入并返回数组的大小(即最大索引 + 1)。
如果数组是 稀疏 数组,则意味着大小包括未定义的元素和已定义的元素。
NULL 实参返回 NULL 作为结果。
示例¶
下面是一个简单的示例:
SELECT ARRAY_SIZE(ARRAY_CONSTRUCT(1, 2, 3)) AS SIZE; +------+ | SIZE | |------| | 3 | +------+
下面是一个稍微复杂一点的示例,这次使用 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;检索 VARIANT 列中每个数组的大小:
SELECT ARRAY_SIZE(v) from colors; +---------------+ | ARRAY_SIZE(V) | |---------------| | 3 | | 6 | +---------------+检索 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 | | } | +-------------------------+