适用于: Databricks SQL Databricks Runtime 15.3 及更高版本
从 variantExpr
中提取由 path
指定的类型的值。
语法
variant_get ( variantExpr, path, type )
论点
variantExpr
:一个VARIANT
表达式。path
:一个STRING
文本,其中包含格式正确的 JSON 路径表达式。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.