- カテゴリ:
半構造化データ関数と構造化データ関数 (配列/オブジェクト)
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 | | } | +-------------------------+