概述: Doris 之数据查询
函数篇
GET_JSON_STRING
函数 : JSON 字段提取
- 推荐文献
- GET_JSON_STRING 函数 - Doris/SQL函数
GET_JSON_STRING
是Apache Doris
提供的一个内置函数
用于从
JSON
文本中提取指定路径的字段值,并将其转换为字符串类型。
如果路径不存在或无法转换为字符串,则返回 NULL。
示例: 提取简单键值
- 从 JSON 中获取键 "k1" 的值:
SELECT GET_JSON_STRING('{"k0": {"k01": ["hello", "world"] }, "k1":"v1", "k2":"v2"}', "$.k1") as r1 -- 第1层的字段-- , GET_JSON_STRING('{"k0": {"k01": ["hello", "world"] }, "k1":"v1", "k2":"v2"}', "$.k0.k01") as r2 -- 第2层的字段(嵌套字段)-- , GET_JSON_STRING('{"k0": {"k01": ["hello", "world"] }, "k1":"v1", "k2":"v2"}', "$.k0.k01[1]") as r2 -- 第2层的字段(嵌套字段)-- 返回结果:
r1|r2 |r2 |
--+-----------------+-----+
v1|["hello","world"]|world|
示例: 提取数组中的元素
- 从键 "my.key" 的数组中获取第二个元素:
SELECT GET_JSON_STRING('{"k1":"v1", "my.key":["e1", "e2", "e3"]}', '$."my.key"[1]');
-- 返回结果: e2
示例: 嵌套路径提取
- 从嵌套路径中提取第一个数组元素:
SELECT GET_JSON_STRING('{"k1.key":{"k2":["v1", "v2"]}}', '$."k1.key".k2[0]');
-- 返回结果: v1
示例: 提取数组中所有匹配的值
- 从数组中提取所有键为 "k1" 的值:
SELECT GET_JSON_STRING('[{"k1":"v1"}, {"k2":"v2"}, {"k1":"v3"}, {"k1":"v4"}]', "$.k1");-- 返回结果: ["v1","v3","v4"]
注意事项
- 路径格式:<json_path> 必须以 $ 开头,使用 . 分隔层级,数组索引用 [ ] 表示。
- 特殊字符:路径中包含 . 时需用双引号包裹,例如 $."my.key".
- 返回值:如果路径不存在或格式错误,返回 NULL。
- 此函数适用于解析 JSON 数据,但对于复杂操作,推荐使用 jsonb 类型和相关函数以提高性能。
Y 推荐文献
- Apache Doris
- GET_JSON_STRING 函数 - Doris/SQL函数