次の方法で共有


VARIANT 種類

適用対象:チェック済み Databricks SQL チェック済み Databricks Runtime 15.3 以降

半構造化データを表します。

Iceberg v2 テーブルでは、 VARIANT 列はサポートされていません。 Apache Iceberg v3 では、 VARIANT 列がサポートされています。 Apache Iceberg v3 機能の使用を参照してください。

構文

VARIANT

制限

この型では、半構造化データ OBJECTARRAY、スカラー型の格納がサポートされています。 STRUCTを格納し、MAPto_variant_object関数を使用します。 MAP キーは、 STRING型である必要があります。

リテラル

parse_json値の作成の詳細については、関数を参照してください。 CAST 関数を使用して、何らかの型のリテラルを VARIANT に変換することもできます。

メモ

  • VARIANT から値を抽出するには、次を使用できます:
    • variant_get JSON パス式を使用して複合型に移動する関数です。
    • JSON パス式を使用して:を解析するには、VARIANTを使用します。
    • JSON パスを使用するtry_variant_get 関数によってエラーを許容しながら複合型に移動する。
    • 関数または (コロンコロン記号) 演算子を使ってを特定の型にキャストします。
    • エラーを許容して特定の型にをキャストするための関数です。
  • VARIANT 値の型を調べるには、次を使用できます:

> 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" }