variant_get 函数

适用于:勾选“是” Databricks SQL 勾选“是” Databricks Runtime 15.3 及更高版本

variantExpr 中提取由 path 指定的类型的值。

语法

variant_get ( variantExpr, path, type )

参数

  • variantExpr:一个 VARIANT 表达式。
  • path:包含格式正确的 JSON 路径表达式STRING 文本。
  • type:定义类型的 STRING 文本。

返回

一个 type 类型的值。

如果找不到该对象,则返回 NULL。 如果找到对象但无法转换为所需类型,Azure Databricks 将引发 INVALID_VARIANT_CAST。 若要返回 NULL 而不是错误,请使用 try_variant_get 函数。

示例

-- Simple example
> SELECT variant_get(parse_json('{"key": 123, "data": [4, {"a": "hello"}, "str"]}'), '$.data[1].a', 'string')
  hello

-- missing path
> SELECT variant_get(parse_json('{"key": 123, "data": [4, {"a": "hello"}, "str"]}'), '$.missing', 'int')
  null

-- Invalid cast
> SELECT variant_get(parse_json('{"key": 123, "data": [4, {"a": "hello"}, "str"]}'), '$.key', 'array<int>')
  Error: INVALID_VARIANT_CAST.