[Doris/函数] Doris 之数据查询

概述: Doris 之数据查询

函数篇

GET_JSON_STRING 函数 : JSON 字段提取为String

  • 推荐文献
  • GET_JSON_STRINGApache 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 类型和相关函数以提高性能。

GET_JSON_INT 函数 : JSON 字段提取为Int型

  • 参考/类比: get_json_string 函数

GET_JSON_BOOL 函数 : JSON 字段提取为Bool型

  • 参考/类比: get_json_string 函数

Y 推荐文献

  • Apache Doris

X 参考文献

posted @ 2025-10-13 15:35  千千寰宇  阅读(12)  评论(0)    收藏  举报