適用対象:
Databricks SQL
Databricks Runtime 15.3 以降
重要
この機能は パブリック プレビュー段階です。
半構造化データを表します。
注
Iceberg v2 テーブルでは、 VARIANT 列はサポートされていません。 Apache Iceberg v3 では、 VARIANT 列がサポートされています。
Apache Iceberg v3 機能の使用を参照してください。
構文
VARIANT
制限
この型では、半構造化データ OBJECT、 ARRAY、スカラー型の格納がサポートされています。
STRUCTを格納し、MAPto_variant_object関数を使用します。
MAP キーは、 STRING型である必要があります。
リテラル
parse_json値の作成の詳細については、関数を参照してください。
CAST 関数を使用して、何らかの型のリテラルを VARIANT に変換することもできます。
メモ
-
VARIANTから値を抽出するには、次を使用できます:-
variant_getJSON パス式を使用して複合型に移動する関数です。 - JSON パス式を使用して
:を解析するには、VARIANTを使用します。 - JSON パスを使用する
try_variant_get関数によってエラーを許容しながら複合型に移動する。 関数または (コロンコロン記号) 演算子を使って を特定の型にキャストします。 エラーを許容して特定の型に をキャストするための関数です。
-
-
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" }