📣
TiDB Cloud Premium 开放公测中。为企业级工作负载提供无限扩展、即时弹性伸缩和高级安全保障。此页面由 AI 自动翻译,英文原文请见此处。

JSON_EACH



从 JSON 对象中提取键值对,将其结构拆分为结果集中的单独行。每一行都表示从输入 JSON 表达式派生出的一个不同键值对。

语法

JSON_EACH(<json_string>)

返回类型

JSON_EACH 返回一组元组,每个元组由一个 STRING 键和一个对应的 VARIANT 值组成。

示例

-- 从表示人员信息的 JSON 对象中提取键值对 SELECT JSON_EACH( PARSE_JSON ( '{"name": "John", "age": 25, "isStudent": false, "grades": [90, 85, 92]}' ) ); ┌──────────────────────────────────────────────────────────────────────────────────────────────────┐ │ json_each(parse_json('{"name": "john", "age": 25, "isstudent": false, "grades": [90, 85, 92]}')) │ ├──────────────────────────────────────────────────────────────────────────────────────────────────┤ │ ('age','25') │ │ ('grades','[90,85,92]') │ │ ('isStudent','false') │ │ ('name','"John"') │ └──────────────────────────────────────────────────────────────────────────────────────────────────┘ -- 显示提取值的数据类型 SELECT TYPEOF ( JSON_EACH( PARSE_JSON ( '{"name": "John", "age": 25, "isStudent": false, "grades": [90, 85, 92]}' ) ) ); ┌──────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ typeof(json_each(parse_json('{"name": "john", "age": 25, "isstudent": false, "grades": [90, 85, 92]}'))) │ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ TUPLE(STRING, VARIANT) NULL │ │ TUPLE(STRING, VARIANT) NULL │ │ TUPLE(STRING, VARIANT) NULL │ │ TUPLE(STRING, VARIANT) NULL │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────┘

文档内容是否有帮助?