适用于:
Databricks SQL
Databricks Runtime 15.3 及更高版本
重要
此功能目前以公共预览版提供。
表示半结构化数据。
注释
Iceberg 表不支持 VARIANT 列。
语法
VARIANT
限制
该类型支持存储任何半结构化数据,包括 STRUCT、ARRAY、MAP 和标量类型。
VARIANT 只能存储具有以下类型的键的 MAP 类型:STRING。
文本
有关创建parse_json值的详细信息,请参阅函数。
还可以使用 CAST 函数将某种类型的文本转换为 VARIANT。
备注
- 要从
VARIANT中提取值,可以使用variant_get函数 使用 JSON 路径表达式 遍历复杂类型。:(冒号)运算符用于通过 JSON 路径表达式解析VARIANT。try_variant_get函数,用于使用 JSON 路径导航到复杂类型中,且具备容错机制。cast函数 或::(两个冒号)运算符,可将VARIANT转换为特定类型。try_cast函数 用于将VARIANT转换为具有错误容忍的特定类型。
- 要检查
VARIANT值的类型,请使用schema_of_variant对单个值的函数。schema_of_variant_agg值的集合的聚合函数。
示例
> SELECT parse_json('{"key": 123, "data": [4, 5, "str"]}');
{"data":[4,5,"str"],"key":123}
> SELECT parse_json(null);
null
> SELECT parse_json('123');
123
> SELECT CAST(123.456 AS VARIANT);
123.456