GET_PATH
通过 path_name
从 半结构化(VARIANT)
中提取值。
如果任一参数为 NULL
,则返回 半结构化(Variant)
或 NULL
。
GET_PATH
等同于一系列 GET
函数的链式调用。path_name
由多个字段名串联而成,每个字段名(第一个除外)前可带有句点(.)、冒号(:)或索引操作符([index]
)。第一个字段名无需指定前导标识符。
语法
GET_PATH( <variant>, <path_name> )
参数
参数 | 描述 |
---|---|
<variant> | 包含 ARRAY 或 OBJECT 的半结构化(VARIANT)值 |
<path_name> | 由字段名串联组成的字符串值 |
返回类型
半结构化(VARIANT)
示例
SELECT get_path(parse_json('{"k1":[0,1,2], "k2":{"k3":3,"k4":4}}'), 'k1[0]');
+-----------------------------------------------------------------------+
| get_path(parse_json('{"k1":[0,1,2], "k2":{"k3":3,"k4":4}}'), 'k1[0]') |
+-----------------------------------------------------------------------+
| 0 |
+-----------------------------------------------------------------------+
SELECT get_path(parse_json('{"k1":[0,1,2], "k2":{"k3":3,"k4":4}}'), 'k2:k3');
+-----------------------------------------------------------------------+
| get_path(parse_json('{"k1":[0,1,2], "k2":{"k3":3,"k4":4}}'), 'k2:k3') |
+-----------------------------------------------------------------------+
| 3 |
+-----------------------------------------------------------------------+
SELECT get_path(parse_json('{"k1":[0,1,2], "k2":{"k3":3,"k4":4}}'), 'k2.k4');
+-----------------------------------------------------------------------+
| get_path(parse_json('{"k1":[0,1,2], "k2":{"k3":3,"k4":4}}'), 'k2.k4') |
+-----------------------------------------------------------------------+
| 4 |
+-----------------------------------------------------------------------+
SELECT get_path(parse_json('{"k1":[0,1,2], "k2":{"k3":3,"k4":4}}'), 'k2.k5');
+-----------------------------------------------------------------------+
| get_path(parse_json('{"k1":[0,1,2], "k2":{"k3":3,"k4":4}}'), 'k2.k5') |
+-----------------------------------------------------------------------+
| NULL |
+-----------------------------------------------------------------------+