跳到主要内容

JSON_EACH

引入或更新于:v1.2.152

从 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
└──────────────────────────────────────────────────────────────────────────────────────────────────────────┘
欢迎体验 Databend Cloud

基于 Rust + 对象存储构建的新一代多模态数仓,一个平台即可进行 BI、向量、全文检索及地理空间分析。

支持标准 SQL,自动弹性伸缩,助您快速构建现代化数据平台。

注册即领 ¥200 代金券。

注册体验