翻訳ページ
このページは AI の支援を受けて英語から翻訳されています。内容が異なる場合は英語版が正となります。
JSON_ARRAY_LENGTH
JSON 配列の要素数を返します。
関連項目:
[SELECT] [DESCRIBE] [JSON_EXTRACT] [ データ型 ]
ヒント
構文
SELECT JSON_ARRAY_LENGTH(json_array_or_object [, json_path]) FROM <multipartIdentifier>;
引数
json_array_or_object
JSON 配列またはオブジェクト。
json_array_or_object が(配列ではなく)JSON オブジェクトで、json_path が指定されていない場合は、
0が返されます。
json_path
オブジェクト内に含まれる配列への JSON パス(省略可能)。jsonpath.com を参照してください。
json_path が指定された場合、
json_array_length関数は json_array_or_object 内でそのパスを特定し、配列の長さを返します。json_path が(配列ではなく)オブジェクトの場合は0を返します。json_path が json_array_or_object 内で見つからない場合は、NULLが返されます。
json_array_or_object または json_path が JSON オブジェクトでない場合、または整形式でない場合は、エラーが発生します。
戻り値
整数を返します。
例
Google Compute Engine インスタンスにアタッチされたディスクの数を返す
SELECT name, json_array_length(disks) as num_disks
FROM google.compute.instances
WHERE project = 'stackql-demo'
AND zone = 'australia-southeast1-a';
Google Compute Engine インスタンスにアタッチされたネットワークインターフェイスの数を返す
SELECT name, json_array_length(networkInterfaces) as num_nics
FROM google.compute.instances
WHERE project = 'stackql-demo'
AND zone = 'australia-southeast1-a';
Google Storage バケットに関連付けられた ACL の数を返す
SELECT name, json_array_length(acl) as num_acls
FROM google.storage.buckets
WHERE project = 'stackql';
サービスアカウントに関連付けられたスコープの数を返す
SELECT name, json_array_length(serviceAccounts, '$[0].scopes') as num_scopes
FROM google.compute.instances
WHERE project = 'stackql-demo'
AND zone = 'australia-southeast1-a';
詳細については、https://www.sqlite.org/json1.html#jarraylen を参照してください。