翻译页面
本页面由 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_array_or_object 中无法定位 json_path,则返回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