跳到主要内容

GET_BY_KEYPATH

使用“键路径”(key path) 字符串从 VARIANT 中提取嵌套值:

  • GET_BY_KEYPATH 返回 VARIANT
  • GET_BY_KEYPATH_STRING 返回 STRING

键路径采用 Postgres 风格的 {segment} 语法,多个段之间用逗号分隔,例如 '{user,profile,name}',数组索引用数字表示,如 '{items,0}'

语法

GET_BY_KEYPATH(<variant>, <keypath>)
GET_BY_KEYPATH_STRING(<variant>, <keypath>)

返回类型

  • GET_BY_KEYPATHVARIANT
  • GET_BY_KEYPATH_STRINGSTRING

示例

SELECT GET_BY_KEYPATH(PARSE_JSON('{"user":{"name":"Ada","tags":["a","b"]}}'), '{user,name}') AS profile_name;
+--------------+
| profile_name |
+--------------+
| "Ada" |
+--------------+
SELECT GET_BY_KEYPATH(PARSE_JSON('[10,{"a":{"k1":[1,2,3]}}]'), '{1,a,k1}') AS inner_array;
+-------------+
| inner_array |
+-------------+
| [1,2,3] |
+-------------+
SELECT GET_BY_KEYPATH_STRING(PARSE_JSON('{"user":{"name":"Ada"}}'), '{user,name}') AS name_text;
+-----------+
| name_text |
+-----------+
| Ada |
+-----------+
SELECT GET_BY_KEYPATH_STRING(PARSE_JSON('[10,{"a":{"scores":[100,98]}}]'), '{1,a,scores,0}') AS first_score;
+-------------+
| first_score |
+-------------+
| 100 |
+-------------+
开始使用 Databend Cloud
低成本
快速分析
多种数据源
弹性扩展
注册