適用於:
Databricks SQL
Databricks Runtime 15.3 和更新版本
重要
這項功能正在處於公開預覽版中。
表示半結構化數據。
備註
Iceberg v2 資料表不支援 VARIANT 資料行。 Apache Iceberg v3 支援 VARIANT 資料行。 請參閱 使用 Apache Iceberg v3 功能。
語法
VARIANT
限制
該型別支援儲存半結構化資料 OBJECT、 ARRAY、 以及純量型態。
用來儲存 STRUCT 和 MAP 使用 to_variant_object 函式。
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
> SELECT to_variant_object(map('key', 'val'));
{ "key": "val" }
> SELECT to_variant_object(struct('field', 'val'));
{ "field": "val" }